Einzelnen Beitrag anzeigen

MarioR

Registriert seit: 11. Nov 2005
7 Beiträge
 
Delphi 6 Enterprise
 
#1

C++ DLL in Delhi nutzen, GetProcAddress gibt immer nil zurück

  Alt 28. Sep 2015, 14:18
Hallo,

ich habe eine C++ DLL diese enthält (zur Zeit) eine Funktion
Code:
 __declspec(dllexport) int getVersion()
{   
   System::Console::Beep(500, 1000);
   return 2;       
}
Im Delphi versuche ich die "getVersion" aufzurufen:
Code:
...
    dllGetVersionName = 'getVersion@YAHXZ';
...
begin
    hRosiLib := LoadLibrary(libNamePath);
    if (hRosiLib<>0) then
    begin
      @vFuncVersion := GetProcAddress(hRosiLib, dllGetVersionName);
      if (Assigned(vFuncVersion)) then
      begin
        test := vFuncVersion();
        Result := '';
      end
      else
        Result := 'Fehler beim finden der Funktion['+dllGetVersionName+']';
      FreeLibrary(hRosiLib);
    end
    else
      Result := 'Fehler beim Laden der dll['+libNamePath+']!';
end;
Loadlibrary funktioniert, aber GetProcAddress liefert immer Nil.
"_cdecl und _stdcall" habe ich schon in allen Kombinationen ausprobiert.


DependencyWalker zeigt die Funktion als "int getVersion(void)" an
DLLEports2.0 als "?getVersion@@YAHXZ" bei _stdcall und "?getVersion@@YGHXZ" bei _cdecl.

...mmm... und nun ??
steht er da und hat keinen Schimmer wo es hackt.

Gruß Mario
  Mit Zitat antworten Zitat