Ausnahmefehler in CMapPtrToPtr

Wirehead

Grünschnabel
Hallo,

seit ich mein Projekt als Release-Version laufen lasse, krieg ich immer an derselben Stelle eine unbehandelte Ausnahme. Der Debugger springt in die Methode CMapPtrToPtr::GetValueAt(), aber ich kann nicht rekonstruieren, von wo aus in meinem Code diese Methode aufgerufen wird. Jedenfalls konnte ich bisher keinen "Auslöser" eingrenzen.
Weiß jemand, wie man dem beikommen kann?

Gruß,
Wirehead
 
In meinem VS (VS6, deutsch) ist im Menü ein Item Ansicht->Debug-Fenster->Aufrufliste. Damit bekommst Du die Liste der Funktionen, die gerade 'aktiv' sind. Ganz oben müßte dann die GetValueAt Funktion stehen, darunter die Funktion, die GetValueAt aufgerufen hat. Mit einem Doppelklick darauf springt der Debugger an die entsprechende Codestelle.
EDIT:
Mist, habe überlesen, daß Du ja im Release-Modus arbeitest. Da ist das natürlich ziemlich schwierig. Kannst Du das nicht ein wenig weiter eingrenzen? Z.B. nach welchem Ereignis das auftritt oder so?
Wenn ein Fehler nur im Release auftaucht und nicht im Debug, dann kann man eigentlich nur vermuten.
 
Zuletzt bearbeitet:
Hab die Ursache rausgekriegt...

Das Problem war, daß ich mit selbst erstellten Nachrichten gearbeitet habe, die ich per SendMessage() ausgelöst habe. Der Ausnahmefehler kam jedesmal beim SendMessage() - Aufruf und der Grund war schlicht und ergreifend der Rückgabetyp der dazugehörigen Methode.
Im Debugmodus geht das problemlos mit

void CMyClass::OnMyMessage(),

aber beim Release muß der Prototyp der Nachrichtenbehandlungsfunktion so aussehen:

LRESULT CMyClass::OnMyMessage(WPARAM wp, LPARAM lp)

auch wenn man eigentlich gar keine Parameter übergibt. Am Ende der Nachrichtenbehandlungsfunktion dann noch 0 als return-Wert zurückgeben und schon das Ganze.
Argh, da soll man nun von allein drauf kommen...

Gruß,
Andreas
 
Zurück