Fehler bei DoModal() in DLL



  • Ich habe eine DLL geschrieben, die bis zu dem Punkt läuft,
    wo ich in einer Funktion DoModal() aufrufe.
    Genau da schmiert meien MFC-Hauptanwendung (EXE) ab und der Debugger
    zeigt auf die Zeile:

    DLGCORE.CPP:

    // load resource as necessary
    	LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
    	HGLOBAL hDialogTemplate = m_hDialogTemplate;
    	HINSTANCE hInst = AfxGetResourceHandle(); //diese Zeile ist es
    

    Das passiert in der DLL:

    __declspec (dllexport) void tw(void) 
    { 
    	AfxMessageBox("wird noch angezeigt!");
    tuning ff; //tuning ist included
    ff.DoModal(); //aufruf des Dialoges in der DLL innerhalb der Klasse tuning
    //und genau hier schmiert mir alles ab kein plan warum.....
    }
    

    Die Funktion tw wird so exportiert:

    #define PLUG_API __declspec(dllexport)
    extern "C" PLUG_API void tw();
    

    Ich habe das in 100 anderen DLL ebenso gemacht und die laufen alle.
    Habe sogar das ganze DLL-Projekt nochmal neu erstellt.
    Aber mit dem gleichen Ergebnis 😮

    Bereinigen der Projektmappe bringt auch keine Änderung.
    Ich werde irre 😡



  • Wenn der Dialog in der DLL drin ist, dann musst Du doch auch die Ressource aus der DLL verwenden, oder? Wird in der DLL die MFC überhaupt richtig initialisiert? Welche Dialog-Ressource wird denn hier wie geladen?


Anmelden zum Antworten