002
04.03.2004, 07:53 Uhr
~mike
Gast
|
Zitat: |
~Dirk23 postete Oder was gibt es sonst noch für Möglichkeiten, wenn ich Informationen von DLL2 zu DLL1 schaufeln will?
|
Ich denke mal du meinst mit Informationen structs, Variablen etc
Folgendes Sample ist aus der MSDN kopiert:
C++: |
typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT); ...
HINSTANCE hDLL; // Handle to DLL LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer DWORD dwParam1; UINT uParam2, uReturnVal;
hDLL = LoadLibrary("MyDLL"); if (hDLL != NULL) { lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL, "DLLFunc1"); if (!lpfnDllFunc1) { // handle the error FreeLibrary(hDLL); return SOME_ERROR_CODE; } else { // call the function uReturnVal = lpfnDllFunc1(dwParam1, uParam2); } }
|
Du kannst den Source überall aufrufen. Egal ob DLL2 -> DLL1 oder DLL1 -> DLL2. Wenn du eine Variable/Struct übergeben willst, nimm einfach einen Pointer, oder wenn du C++ proggst ne Referenz. Diese Funktionspointer sind ziemlich praktisch. Du kannst natürlich auch ein struct an uReturnVal zurückgeben, das setzt aber wieder voraus, dass das struct dem Program, indem du den obigen Source aufrufst, bekannt ist.
mfg |