Callback-Funktion DLL übergreifend
-
Hallo!
Ich hab eine DLL A, die eine aufwändige Berechnung implementiert und eine DLL B, die dazu eine Oberfläche für Ein- und Ausgaben bereithält. Durch Drücken eines Knopfes in B, wird die o.g. Berechnung aus A gestartet. A erlaubt es, sich mittels Callback-Funktion über den Stand der Berechnung zu informieren. So weit so gut.
Meine Callback-Funktion ist in B implementiert und übergibt unter anderem einen CWnd-Zeiger an die Berechnungsfunktion, welcher bei jedem Callback-Aufruf über eine Struktur an die Callback-Funktion kommt.
Callback-Funtion:
void MyCallBack(const CallbackParam ¶m) { CWnd *pWnd = param.pWindow; // Statustext ausgeben }
Dieses System funktioniert wunderbar auf mehreren Rechnern hier, jedoch auf einem nicht. Dieser Problem-Rechner hat Windows XP (alle anderen 7 oder Vista) und stürzt regelmäßig ab. Allerdings nicht während des Callback-Aufrufes, sondern erst wenn die Berechnung komplett fertig ist und die Ergebnisse am Bildschirm dargestellt werden. Remote-Debug auf diesen Rechner brachte mir nicht wirklich viel, da keine Exception geworfen wird.
Wird der Callback nicht verwendet, dann klappts auch mit diesem Rechner. Er stürzt aber wieder ab, wenn die Callback-Funktion aufgerufen wird, darin aber _gar nichts_ gemacht wird!?
Habt ihr eine Idee?
Zusatzinfo:
Der Callstack auf dem XP-Rechner ist zum Zeitpunkt des Absturzes - vereinfacht ausgedrückt - komplett durcheinander.