Problem bei Funktionsaufruf aus einer DLL



  • Hi zusammen,

    habe ein Problem bei Aufruf einer Funktion aus einer Library.
    Bekomme immer NULL zurück.

    Hier die Header-Funktion aus der Library:

    __declspec (dllexport) char OpenTest (char comport, char Device_Status, char Adress);
    

    Nun habe ich in meiner Wrapper.h

    typedef char (__stdcall *TOpenTest ) (
                          sint32       s32_ComPort,
                          char         Device_Status,
                          char         Adress);
    HINSTANCE m_Dll;
    

    und rufe die Funktion in der Wrapper.cpp folgendermaßen auf:

    //Meine Library = s_FilenameDLL
    //Load-Library bring beim Mausouver im Debug: :08DC00000...
    m_Dll = LoadLibrary (s_FilenameDLL.c_str());
    //Library wird denk ich geladen, da nich NULL
    // load the function from dll
        dll_InitCommunication = (TOpenTest) GetProcAddress (m_Dll, "OpenTest");
    

    Bekomme aber immer NULL zurück!

    An was liegt das?

    Danke



  • So einen ähnlichen Eintrag gab es heute schon einmal (im WinAPI-Forum): http://www.c-plusplus.net/forum/viewtopic-var-t-is-251528

    Handelt es sich um eine DLL mit C-Schnittstelle? Ansonsten schau dir mal die DLL mit dem DependencyWalker an (bzgl. Name-Mangling).



  • Hi,

    ja, sollte so sein!
    Die Funktion im Header der DLL sagt dies doch schon aus, oder?

    Danke



  • Hallo

    Nein reicht nichts aus. Im Zweifelsfall wie schon erwähnt entsprechende Tools zum Untersuchen einer DLL einsetzen, und nochmal im Tutorial nachlesen was alles beachtet werden muß.

    bis bald
    akari



  • HI,

    ok, es lag daran, das kein "extern "C" " vor dem "__declspec" stand!

    Danke und Grüße


Log in to reply