Meisterzunge
Mitglied
Ich habe in meinem Hauptprogramm eine Klasse 'CInterface' (die nur 'virtuelle' Funktionen enthält) von der die Applikationsklasse meines Hauptprogramms erbt.
Die DLL bekommt ein Pointer (Typ 'CInterface') auf die Applikationsklasse.
Wenn die DLL das Programm über ein bestimmtes Ereignis informieren will ruft sie die Funktion der Applikationsklasse über 'CInterface' auf.
Wenn ich in meinem Hauptprogramm innerhalb einer Funktion, welche die DLL aufgerufen hat, DoModal() aufrufe, wird das Dialogfeld was ich öffnen will sofort wieder geschlossen. GetLastError() liefert mir 'ERROR_RESOURCE_DATA_NOT_FOUND'.
Wenn ich DoModal() direkt aus meinem Hauptprogramm aufrufe, wird das Dialogfeld ganz normal gezeigt, es liegt also daran, dass ich es aus der Funktion starte, die von der DLL aufgerufen wird.
Ich verwende in DLL und Programm als Laufzeitbibliothek 'Multithreaded-DLL (/MD)'
Wie kann ich das problem beheben ?
Die DLL bekommt ein Pointer (Typ 'CInterface') auf die Applikationsklasse.
Wenn die DLL das Programm über ein bestimmtes Ereignis informieren will ruft sie die Funktion der Applikationsklasse über 'CInterface' auf.
Wenn ich in meinem Hauptprogramm innerhalb einer Funktion, welche die DLL aufgerufen hat, DoModal() aufrufe, wird das Dialogfeld was ich öffnen will sofort wieder geschlossen. GetLastError() liefert mir 'ERROR_RESOURCE_DATA_NOT_FOUND'.
Wenn ich DoModal() direkt aus meinem Hauptprogramm aufrufe, wird das Dialogfeld ganz normal gezeigt, es liegt also daran, dass ich es aus der Funktion starte, die von der DLL aufgerufen wird.
Ich verwende in DLL und Programm als Laufzeitbibliothek 'Multithreaded-DLL (/MD)'
Wie kann ich das problem beheben ?