LoadLibrary funktioniert nicht :(



  • Hallo zusammen !

    Erstmal der entsprechende Sourcecode :

    typedef int (CALLBACK* CHECKCOMPONENT)(char *compnnt);
    CHECKCOMPONENT CheckCmp = NULL;
    
    ...
    
    short MyFunc(char* userInput)
    { 
    
    ...
    
    HINSTANCE VsfDLL = NULL;
    
    VsfDLL = LoadLibrary("MycAlgorithmsDisplay.dll");
    if (VsfDLL != NULL)
    {
    	CheckCmp = (CHECKCOMPONENT)GetProcAddress(VsfDLL, "CheckComponent");
    	if (!CheckCmp)
    	{
                // handle the error
                FreeLibrary(VsfDLL);       
    	}
    	else
    	{
    	   // Call the function:
               int x = CheckCmp(userInput);
    	}
    	FreeLibrary(VsfDLL);       
    }
    

    Ich erhalte in der Zeile int x = CheckCmp(userInput) folgenden Fehler :

    Debug Assertion Failed!

    Program : C:\Prc\Prc.exe
    File : fseek.c
    Line: 101

    Expression: stream != NULL

    Die Funktion CheckComponent benutzt zwar ein fseek, allerdings wird der Code erst garnicht bis dahin ausgeführt. Ich hab am Anfang der Funktion ein Logging eingebaut (direkt als erste Anweisung) aber dieses wird schon garnicht ausgeführt. Von daher kann es kaum an meinem Funktionsaufruf an fseek liegen.

    Die Dlls liegen auch in den richtigen Verzeichnissen - ich bin ratlos 😞

    Wer hilft mir ?



  • Also ich hab mittlerweile rausgefunden, dass es nicht am Code selbst liegt. Wenn ich eine Testanwendung mache und denselben Code benutze um die Dll-Funktion aufzurufen, dann funktioniert es.

    Deshalb muss es irgendwie am Umfeld liegen :

    Ich hab eine VB6 - Anwendung, die eine DLL einbindet. Diese DLL ist als Win32 C++ DLL kompiliert, beinhaltet aber einige Dateien, die als C-Code kompiliert werden. Aus einer dieser als C-Code kompilierten Dateien versuche ich nun mit obigem Code meine Funktion aus meiner MFC-DLL aufzurufen.

    Liegt es vielleicht an irgendwelchen Projekteigenschaften ?

    Wäre super, wenn jemand mit der Fehlermeldung etwas anfangen oder mir noch weitere Tips geben könnte.


Anmelden zum Antworten