Pregunta

Tengo un DLL con algunos Los objetos COM.A veces, este objeto se bloquea y registro de un evento de error en el Registro de Sucesos de Windows con un montón de hexadecimal informaciones.No tengo ni idea de por qué este se bloquea sucede.

Así que, ¿Cómo puedo rastrear los objetos COM excepciones?

¿Fue útil?

Solución

El primer paso es buscar el código de fallo del valor hexadecimal (E. G.E_FAIL 0 x 80004005).He tenido muy buena suerte con la publicación de ese valor en Google para tener una idea de lo que el código de error significa.

A continuación, sólo tiene que utilizar el ensayo y error para intentar aislar la ubicación en el código que no funciona, y la causa raíz de la falla.

Otros consejos

Si sólo quieres realmente una manera rápida de averiguar cuál es el código de error significa que usted podría utilizar la "Búsqueda de Errores" de la herramienta de empaquetado con Visual Studio (detalles aquí).Introduzca el valor hexadecimal, y se le dará la cadena describiendo el código de error.

Por supuesto, una vez que usted sabe que, usted todavía tiene que averiguar por qué está sucediendo.

Una buena manera de buscar el error (hresult) códigos de HResult Más o welt.exe (Windows Error Lookup Tool).

Yo uso el registro internamente en la COM-de la clase para ver lo que está pasando.También, una vez que la COM-clase de carga el ejecutable, puede adjuntar el VS depurador y depurar el código COM con puntos de interrupción, relojes, y todo lo que la materia de la diversión.

Los objetos COM no lanzar excepciones.Regresan HRESULTs, la mayoría de los cuales se indica un fallo.Así que si usted está buscando el equivalente de un seguimiento de pila de excepción, estás de suerte.Vas a tener que caminar a través de el código a mano y averiguar lo que está pasando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top