Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: C-Funktions-Aufruf SetText(char* szLine); nach Delphi

  Alt 31. Mär 2008, 20:32
es ist die Aufrufkonvention! Da du keine spezielle angibst wird "register" verwendet und diese gibt es in C nunmal nicht also ist sie auf jeden fall falsch. Bei Register werden die Parameter wie der Name schon sagt über register übergeben. Deine DLL interpretiert nun das andere was da auf dem Stack liegt als die Paramter aber diese liegen dank register ja gar nicht dort sondern im register. Folglich siehst du Müll. Durch wahl der richtigen Aufrufconvention (per default in c = cdecl) werden die Paramter auch auf den Stack gepackt und somit sind sie auch dort vorhanden wenn die DLL vom Stack liest.

Deine Declaration ist bis auf die fehlende Convetion richtig. Und der aufruf lautet so:
VFD_SetText(PChar(Editx.Text), PChar(Edity.Text));
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat