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 Meldung

    fatal 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. 😃


Anmelden zum Antworten