Dll Call
-
Moin also wie gesat ich komm von AUtoit und da haben wir eine funktion gehabt namens DllCall um joa Dlls zu callen ^^
so sieht das da aus:$result = DllCall("ImageSearchDLL.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage)
$result = DllCall("DLL","Rückegabetyp","Funktion","und hier dan die Parameter")
Wie sieht sowas in C++ aus?
-
LoadLibrary(..): http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx
GetProcAddress(..): http://msdn.microsoft.com/en-us/library/ms683212(VS.85).aspxSimon
-
ok ich habs mal probiert aber häng irgendwie:
#include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { PGNSI pGNSI; HINSTANCE ImageSearchDLL; ImageSearchDLL = LoadLibrary(TEXT("ImageSearchDLL.dll")); // $result = DllCall("ImageSearchDLL.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage) while (1) { pGNSI = GetProcAddress( ImageSearchDLL, "ImageSearch"); }; }
-
Du hast dir da ja auch einen Endlos-Loop gebaut, in dem du dir endlos den FunctionPointer holst. Du musst noch den Functionpointer validieren ( gegen NULL testen und ggfs. im Fehlerfall mit GetLastError die Ursache analysieren ) und dann den Call durchführen und am Ende das Handle auf die Dll mit FreeLibrary wieder freigeben.
Gruß Kimmi