Einzelnen Beitrag anzeigen

kmma

Registriert seit: 26. Jul 2010
16 Beiträge
 
Delphi 2 Desktop
 
#1

DLL mit Strings von D10 nach Delphi 6

  Alt 25. Okt 2023, 16:29
Ich habe eine DLL in Delphi 10 die eien String zurückgeben soll. Das ganze soll (muss) in einer D6 Anwendung geladen wewrden.
sharemem ist als erstes in den uses eingebunden, der String ist als ansistring definiert.

Der String wird zwar in D6 richtig angezeigt, beim Beenden der Funktion kommt es aber zu einem Speicherzugriffsfehler.
Was ist da noch zu beachten?

In Delphi 10:
function ExportString: ansistring; export;
begin
result := 'Hallo'
end;

In D6:

procedure TForm1.Button1Click(Sender: TObject);
type TStringFunction = function: ansistring;
var StringFunction: TStringFunction;
h: hmodule;
p: pointer;
begin
h := LoadLibrary(pchar('s:\D\Delphi\Test.dll'));
if h <> 0 then
begin

p := GetProcAddress(h, 'ExportString');
form1.tag := integer(p);
@StringFunction := p;
form1.caption := StringFunction; // Klappt noch

end;
end; // hier kracht es
  Mit Zitat antworten Zitat