DLL Dynamisch Was muss ich beachten
-
Und wie mache ich das am besten?
-
Eigentlich höre ich den Satz auch nicht gern. Schon mal geFAQt? Das haben wir hier schon oft durchgekaut.
-
habe es genau so gemacht wie hier
http://www.c-plusplus.net/forum/viewtopic.php?t=39265
und bekomme jetzt immer die Meldungfatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
MySQLLoadLibDynamic.cpp
#include "MySQLLoadLibDynamic.h" TDLLTest::TDLLTest() { HINSTANCE hInstance; hInstance = ::LoadLibrary("wandel.dll"); pDllFunction = (DLLFUNCTION*)::GetProcAddress((HMODULE)hInstance, "Konvert"); } void TDLLTest::CallDllFunction() { int iResult; if (pDllFunction) iResult = (*pDllFunction)("a01.tif","ausgabe","jpg","90"); printf(""+iResult); } #pragma argsused int main(int argc, char* argv[]) { TDLLTest DllTest; DLLTest.CallDllFunktion(); getch(); return 0; } //<------------------------------ fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
MySQLLoadLibDynamic.h
class TDLLTest { private: typedef int (DLLFUNCTION)(char*,char*,char*,char*); DLLFUNCTION *pDllFunction; public: TDLLTest(); void CallDllFunction();
-
Ich glaube dir fehlt das hier
#include "stdafx.h"
-
Also ich tu's immer so.
HINSTANCE hDLL = NULL; typedef int (*TTestFkt) (int, char *) //kommt darauf an, wie die Fkt in der //DLL aussieht z.B. //int TestFkt (int Zahl, char *Strg) TTestFkt pTestFkt = NULL; hDLL = LoadLibrary ("Test.dll"); //DLL linken if (hDLL != NULL) { pTestFkt = (TTestFkt) GetProcAddress (hDLL, "_TestFkt"); //Pointer der Fkt if (pTestFkt != NULL) //holen { ... } ... }
Funktioniert immer wunderbar.