Aufrufkonventionen C++ DLL
-
Hi,
zur Kenntnisnahme oder so.Für die Funktion
__declspec(dllexport) int HalloWelt(int);
wird in einer mit BDS 2006 geschriebenen Dll laut Borlands impdef.exe der Name
@HalloWelt$qqsi
generiert. Bei Variation der Aufrufkonventionen und Registerverwendung des
Compilers ändert sich der Name hinter dem $.Im Gegensatz dazu enthalten die üblichen MS-DLLs Namen wie:
HalloWelt
ggf mit vorangestelltem @ bei Fastcall
Das ist soweit kein großes Problem, nur etwas unschön beim Import in Delphi, das
zum finden den ganzen Namen braucht:function HalloWelt(value : Integer) : Integer; stdcall; external DLLNAME name '@HalloWelt$qqsi';
Gruss,
Pdug
-
Oder man ist schlau genug einmal die Suchfunktion einzuschalten und auf Grund der nun gewonnen Kenntnisse die Funktion einfach als
extern "C"
zu deklarieren und sich dann nur noch um einen vorangestellten _ Sorgen zu machen ...
-
Wer suchen kann ist klar im Vorteil
Herzlichen Dank!