Delphi DLL in C++ DLL
-
Hallo,
ich habe in einer Delphi-Dll eine Funktion, die ich gern in meiner C++ Dll benutzen würde.
Meine Delphi-Dll sieht (stark vereinfacht) so aus:
library Number; uses SysUtils, Classes, QStdCtrls; {$R *.res} function Number(z:Integer) : Integer; stdcall; begin result := z mod 2; end; exports Number; begin end.
Und in C++ will ich das ganze so benutzen:
HINSTANCE__* hDll; typedef int __stdcall n(int z); n *Number = NULL; int GetNumber(int z) { hDll = LoadLibrary("Number.dll"); Number = (n*)GetProcAddress(hDll,"Number"); int i = Number(z); FreeLibrary(hDll); return i; }
Diese Benutzung verursacht jedoch Fehler.
Kann mir jemand helfen, wie man eine Dll in C++ richtig benutzt?Ich benutze Dev-C++ und Delphi 6.
Danke
-
Hallo
probier mal
Number = (n*)GetProcAddress(hDll,"_Number");
Ansonsten debug mal und schau, wo und was für ein Fehler genau kommt.
Und immer an die Fehlerbehandlung bei WinAPI-FUnktionen denken, bei LoadLibrary zum Beispiel :If the function fails, the return value is NULL. To get extended error information, call GetLastError.
bis bald
akari
-
Ok ich hab mal geguckt wo der Fehler auftritt und das ist in der Zeile
FreeLibrary(hDll);
Lass ich die Zeile weg geht es ohne Fehler, jedoch kann ich dann auf die DLL nicht mehr zugreifen.