Frage

Ich habe eine DLL mit einigen COM-Objekte.Manchmal Objekte abstürzt und registrieren Sie ein Fehler-Ereignis im Windows-Ereignisprotokoll mit viel hexadezimal Informationen.Ich habe keine Ahnung, warum das Abstürzen passiert.

Also, Wie kann ich trace-diese COM-Objekte Ausnahmen?

War es hilfreich?

Lösung

Der erste Schritt ist das nachschlagen der Fail code hex value (E. G.E_FAIL 0x80004005).Ich hatte wirklich Glück mit der Aufgabe, den Wert in Google zu bekommen ein Gefühl von dem, was der Fehlercode bedeutet.

Dann benutze ich einfach Versuch und Irrtum, um zu versuchen zu isolieren die Lage in code, der fehlschlägt, und Sie die Ursache des Fehlers zu finden.

Andere Tipps

Wenn Sie wollen einfach nur eine wirklich schnelle Möglichkeit, um herauszufinden, was der Fehlercode bedeutet, Sie könnte verwenden Sie den "Error Lookup tool verpackt mit Visual Studio (Einzelheiten hier).Geben Sie den hex-Wert, und es wird geben Sie die Zeichenfolge beschreiben, die Fehler code.

Natürlich, wenn Sie wissen, dass Sie noch haben, um herauszufinden, warum es passiert.

Ein guter Weg to look up error (hresult) codes HResult Plus oder welt.exe (Windows Error Lookup Tool).

Ich habe die Protokollierung verwenden, die intern in die COM-Klassen, um zu sehen, was Los ist.Auch, wenn die COM-Klasse geladen wird, die von der ausführbaren Datei, Sie können befestigen Sie den VS-debugger und Debuggen von COM-code mit Haltepunkte, Uhren und alle, die Spaß Zeug.

COM-Objekte keine Ausnahmen.Sie kehren HRESULTs, von denen die meisten deuten auf einen Fehler.So, wenn Sie suchen für die Entsprechung des Ausnahme-stack-trace, sind Sie aus Glück heraus.Sie gehen zu müssen zu Fuß durch den code von hand und herauszufinden, was Los ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top