Entwickler-Ecke

Windows API - Exception-Handling zwischen COM-Objekten


Udontknow - So 25.01.04 22:16
Titel: Exception-Handling zwischen COM-Objekten
Hallo!

Irgendwie hatte ich gedacht, daß ich bei der Verwendung von Interfaces immer ein Exception-Handling ala API (also mit HResult as Funktionsrückgabe) realisieren muss.
Jetzt stelle ich gerade fest, daß zumindest in meiner mit Delphi aufgebauten COM-Umgebung grundsätzlich jede Exception korrekt ausgelöst und behandelt wird, egal wo sie nun ausgelöst wird (sei es ein von einer DLL erzeugtes COM-Objekt oder eine direkt im Hauptprogramm erzeugte Exception).

Gibt es da wirklich keine Stolpersteine? Wie sieht das aus, wenn eine C++-DLL eine Exception auslöst bzw. behandeln will? Ich bin, was die interne Realisierung von Exceptions angeht, leider nicht sehr informiert, und per Google werde ich nicht recht fündig.

Cu,
Udontknow


MaxiTB - So 25.01.04 23:06

Ich kann dir nur eines sagen von der C++ Seite ...

Exception handling unter COM auf C++ Seite ist die reinste Freude; da könnte ich springen an die Wand. *g* Deshalb habe ich mir bis jetzt die Sache mehr oder weniger für später aufgehoben und beschränke mich auf den Result-Value: E_FAIL :wink: .

Finden kann man zu dem Thema eine Menge in der MSDN: Generell [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconHandlingCOMInteropExceptions.asp] und vor allem MSDN: IErrorInfo [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang__com_error.asp]. Ich denke, da wirst du genug dazu finden ...


Motzi - Mo 26.01.04 10:25

Ansonsten kann ich dir zum Thema COM und Delphi das Buch von Andreas Kosch "COM/DOCM/COM+ in Delphi" empfehlen...


MaxiTB - Mo 26.01.04 10:30

Oder wenn dus wirklich gerne Hardcore willst ...

Essential COM
von Don Box
Addison Wesley
ISBN 0-201-63446-5