Hallo,
ich habe mal wieder ein Problem, welches so merkwürdig ist, dass ich es alleine nicht lösen kann. Es hört sich auch tierisch unbegreiflich an...
Also. Ich habe eine
DLL und ein PlugIn. Das PlugIn eines Programms greift auf die
DLL zu und und möchte eine Berechnung durchgeführt haben. Für diese Berechnung braucht die
DLL ein paar Parameter - sowohl Strings, als auch Integers. Die
DLL beinhaltet also eine Funktion, da sie ja was zurückgeben muss. Der wichtige Teil ist nicht die Berechnung, sondern der Teil, dass die Strings nicht ankommen. Ich mache das folgendermaßen:
Delphi-Quellcode:
DLL
function BerechneWas(Titel: PChar; Wert: Integer): Integer;
stdcall;
begin
ShowMessage(Titel);
//Die Berechnung folgt.
end;
== Hauptprogramm ==
procedure OhneNamen;
begin
Edit1.Text:='
Ein schöner Titel';
Edit2.Text:='
25';
Edit3.Text:=IntToStr(BerechneWas(PChar(Edit1.Text), IntToStr(Edit2.Text)));
end;
Was als Titel in der
DLL ankommt, ist ein leerer String. Erstelle ich jetzt eine Prozedur mit Titel und übergebe den PChar an die
DLL klappt das einwandtfrei.
Was mache ich falsch?
ACHSO: Das Showmessage in der
DLL ist natürlich nur zu Debugging-Zwecken da. Aber die Funktion soll in Realität schon einen String/PChar empfangen.
Danke!