Fertig.
Den Artikel gibt es hier:
Rückgabe von Strings aus DLLs
Ich habe die Funktion in der
DLL noch etwas vereinfacht. Die komische if-Abfrage ist natürlich überflüssig:
Delphi-Quellcode:
function func1(s: PChar; Buffer: PChar; lenBuffer: Integer): Integer; stdcall;
var
foo: String;
begin
// Strings aneinanderhängen
foo := 'foo'+ s;
// nur String in Buffer kopieren, wenn Buffer nicht nil ist
if Assigned(Buffer) then
StrLCopy(Buffer, PChar(foo), lenBuffer);
// auf alle Fälle immer Länge des Strings zurückgeben
result := length(foo);
end;
So, ich hoffe, damit kommst du nun klar.