Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Pointerübergabe nur bei Prozeduren??

  Alt 17. Aug 2007, 20:05
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!
  Mit Zitat antworten Zitat