Thema: Delphi DLL Fehler

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8
  Alt 5. Dez 2002, 20:28
Ich habe den Fehler gefunden. In deinem Host-Programm hast du das stdcall; vergessen:
Delphi-Quellcode:
  TDllLanguage = function: TLanguage; stdcall;
  TDllInfo = function: TInfo; stdcall;
Aber das mit dem Result := re ist trotzdem etwas wage. Es funktioniert nur, da Delphi mitdenkt (zumindest bei Records) und bei als stdcall deklarieren Funktionen die Adresse der Variable, die das Ergebnis aufnehmen soll, als 1. Parameter übergibt. So würde deine Funktion für ein C/C++ Programm so aussehen:
Code:
void WINAPI info(TInfo* re);
Was natürlich auch für deine Host-Anwendung anwendbar wäre:
Delphi-Quellcode:
TDllInfo = procedure(var re: TInfo); stdcall;
// ist bei stdcall identisch mit
TDllInfo = function: TInfo; stdcall;
  Mit Zitat antworten Zitat