J'ai une DLL qui est créée en C# dans le but de fournir une interface COM à une bibliothèque C# tierce partie. J'ai un programme C++ qui utilise cette interface COM pour pouvoir communiquer avec la bibliothèque C#. Parfois, les exceptions sont lancées du côté C# et tout ce que je récupère du côté C++ est un HRESULT de l'invocation COM qui dit "exception" (ou quelque chose comme ça). Est-il possible pour moi d'obtenir toutes les informations d'exception afin que je puisse imprimer un message informatif dans le journal de mon application C++? Sinon, y a-t-il quelque chose que je puisse faire du côté C# pour intercepter toutes les exceptions avant qu'elles ne déclenchent quel mécanisme renvoie le HRESULT en C++ pour que je puisse les enregistrer du côté C#?comment gérer les exceptions dans DLL C# chargées par C++
4
A
Répondre
4
Il existe un mappage d'une exception gérée à un HRESULT. Consultez le tableau au this MSDN article. .NET récupère les informations d'erreur d'un objet COM avec IErrorInfo. Cela pourrait bien marcher dans l'autre sens. Ça vaut le coup.
Questions connexes
- 1. C# windows-services - Comment gérer les exceptions de journalisation?
- 2. Comment gérer les exceptions dans un langage procédural?
- 3. C# Gestion des exceptions dans les classes
- 4. Comment gérer Ctrl + C dans une application console Delphi?
- 5. Attraper des exceptions par défaut en C++
- 6. C# Gérer les événements Windows
- 7. C#: comment inclure les DLL dépendantes?
- 8. La copie fantôme et les DLL mixtes C# et C++ sont chargées à partir de dossiers arbitraires
- 9. Comment gérer les exceptions générales dans Asp.Net MVC?
- 10. Exceptions personnalisées en C++
- 11. Générer par programme une DLL C Win32
- 12. C++ dll dans le programme C
- 13. COM Exceptions en C#
- 14. Comment utiliser C# DLL dans vC++?
- 15. Exceptions de proxy en C#
- 16. VS2008 C# Exceptions avec des méthodes invoquées par la réflexion
- 17. C# callback de DLL
- 18. Erreurs DLL MATLAB "C"
- 19. Exceptions de bibliothèques DLL/partagées
- 20. Eclipse C++ dll import
- 21. Comment utiliser les classes C++ exportées par une DLL dans Delphi
- 22. C++ dll Loop Problème
- 23. Lancer des exceptions dans ASP.NET C#
- 24. Chargement d'un dll C# dans un C# exe
- 25. Gestion des exceptions via les services Web C#
- 26. Reverse engineering C++ DLL
- 27. Crash C# lors du chargement C++ dll
- 28. Comment appeler C# .dll à partir d'une application C++/CLI?
- 29. Comment faire pour entrer dans la DLL C/C++ de l'application C# lors du débogage
- 30. marshalling code C dll en C#
Ma lecture à ce lien que vous avez fourni me donne l'espoir. Connaissez-vous une classe ATL qui fait toutes les interrogations d'interfaces nécessaires pour moi, ou est-ce que je vais devoir le faire moi-même? – rmeador
ATL implémente IErrorInfo, vous voulez aller dans l'autre sens. C'est une interface très simple. ISupportErrorInfo :: InterfaceSupportsErrorInfo() en premier, puis IErrorInfo :: GetDescription(). Q pour obtenir les pointeurs d'interface. –