Anfängerproblem: Kann Funktion aus DLL nicht importieren :(



  • Hi!

    Hab ne DLL geschrieben, die so aussieht:

    #include <windows.h>
    
    BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved
    					 )
    {
        return TRUE;
    }
    
    extern "C" __declspec(dllexport) __stdcall unsigned long add(unsigned long a, unsigned long b)
    {
      return a+b;
    }
    

    und ne Testfunktion, die so ausschaut:

    #include <windows.h>
    #include <iostream>
    
    using namespace std;
    
    typedef unsigned long (*TFunc)(unsigned long, unsigned long);
    
    int main(void)
    {
      HINSTANCE hInst = NULL;
      TFunc pAdd = NULL;
      unsigned long a = 2;
      unsigned long b = 3;
      unsigned long res = 0;
    
      hInst = LoadLibrary("CDLL.dll");
    
      if (hInst)
      {
        cout << "DLL gefunden" << endl;
    
        // Adresse zuweisen
        pAdd = (TFunc)GetProcAddress(hInst,"add");
    
        if (pAdd)
        {
          cout << "2+3=" << pAdd(a,b) << endl;
        }
        else
          cerr << "Zuweisung fehlgeschlagen" << endl;
    
        FreeLibrary(hInst);
      }
      else
        cerr << "DLL nicht gefunden" << endl;
    
    	return 0;
    }
    

    Leider bekomme ich die Ausgabe:
    "DLL gefunden
    Zuweisung fehlgeschlagen"

    Warum klappt das mit der Zuweisung nicht??? 😞

    Benutze für beide Teile MS Visual .NET, allerdings erstelle ich ne Win32-Konsolenanwendung bzw. ne Win32-DLL.

    Danke schonmal an alle helfenden!!!



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.




Anmelden zum Antworten