Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: String aus Anwendung in Dll übergeben und zurück

  Alt 30. Jan 2005, 01:53
wenn du nicht weiß wie groß der String werden soll solltest du das ganze so machen
Funktionen In Dll
Delphi-Quellcode:
function TestProc(SourceStr: PChar; var DestStr: PChar): Integer;
begin
  DestStr := StrAlloc(length(SourceStr) + 1); //speicher für DestStr anfordern
  Move(SourceStr^, DestStr^, length(SourceStr) + 1); //inhalt von SourceStr nach DestStr kopieren
  //fals es keine binärdaten sind dann die abschließende #0 (Stringende)
  DestStr[length(SourceStr)] := #0; //bei DestStr noch ein #0 anhängen
  //falls es doch binärdaten sind ist es besser die Länge zurück zu geben
  result := length(SourceStr);
end;

procedure FreeMemFromTestProc(AChars: PChar);
begin
  StrDispose(AChars);
end;
Hauptprogramm
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var LDestStr: PChar;
begin
  TestProc('abcdef', LDestStr);
  //do something with LDestStr
  FreeMemFromTestProc(LDestStr);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat