Funktionsdeklaration bei laden aus DLL
-
Hallo,
Um die DLL zu laden benutze ich LoadLibrary
typedef int (_stdcall *FUNCPTN)( ?parameter? ); //Ist das die Deklaration der Funktion? HMODULE hmLib = LoadLibrary("myDll.dll"); FMyFunc = (FUNCPTN) GetProcAddress(hmLib,"FMyFunc");
a. Ist das die Deklaration der Funktion?
b. Warum gibt es keinen Fehler wenn ich anstatt GetProcAddress(hmLib,"FMyFunc") GetProcAddress(hmLib,"Irgendwas") schreibe.
c. Wie finde ich heraus wie die Funktion zu deklarieren ist?
-
bin auf arbeit, habe also den quellcode nicht da aber die deklaration müsste in etwa so aussehen:
int (*myFunc)(char *); //char ist dann parameter HINSTANCE hmLib = NULL; if (NULL != (hmLib = LoadLibrary("myDll.dll"))) // wenn = NULL { // -> Fehler MyFunc= (int (*)(char *)) GetProcAddress(hmLib,"FMyFunc"); // noch casten FreeLibrary (hmLib); // nich vergessen if (NULL != MyFunc) // wenn = NULL... { MyFunc (/*parameter*/); return true; } else return false; } else return false;
ich hoffe so funktionierts, wenn nich schreibs rein und ich korrigiere es dann montag
ps: ich glabe MyFunc sollte man auch noch bei der deklaration auf NULL setzen, weil wenn man sie aufruft und da is nix -> sehr schlecht.