Pregunta

Estoy tratando de depurar un proyecto DLL nativo de C / C ++ desde Visual Studio 2010. Estoy intentando seguir estas instrucciones: http://msdn.microsoft.com/en -US / library / c91k1xcf (v = VS.100) .aspx

Quiero utilizar el depurador integrado y ser capaz de código de paso, examinar las estructuras, etc., como lo haría con un proyecto .exe regular. Las instrucciones de la página anterior describen un Depuración categoría en la Propiedades de configuración , que no veo.

http://img707.imageshack.us/img707/4402/lalasz.png

Simplemente presionando F5 para depurar los resultados en el siguiente error:

  

No se puede iniciar el programa 'C: \ Usuarios ....... prueba.dll'

He utilizado el depurador para proyectos .exe regulares muchas veces y que trabaja muy bien en este equipo. No estoy seguro de si estoy perdiendo algo muy evidente en este momento sin embargo.

Editar:. Ya que no dejan en claro desde el principio, quiero Visual Studio para LoadLibrary mi DLL en un proceso talón y me dejó depurar a nivel fuente de allí, muy parecido a como lo hace OllyDbg

Mi DLL no es el tipo que tiene un montón de funciones que se exporta y se llama. En lugar de ello lo hace un interruptor / caja en el DllMain y en DLL_PROCESS_ATTACH va a generar un nuevo subproceso. Por lo tanto, todo lo que necesito Visual Studio que hacer es cargar mi archivo DLL en un ejecutable de código auxiliar y me permito a establecer puntos de interrupción, etc.

¿Fue útil?

Solución

haga clic en el nombre de la solución en la ventana Explorador de soluciones y tiene las propiedades de la solución. Tenga en cuenta que la ventana dice "Solución de ensayo Páginas de propiedades".

Haga clic en el nombre del proyecto (Prueba en negrita) en lugar de establecer las opciones del proyecto.

Otros consejos

Es probable que tenga como proyecto de inicio la que produce la DLL.

Usted tiene dos opciones: o bien cambiar el proyecto de inicio a otro proyecto que produce un ejecutable que utiliza ese DLL o configurar en las propiedades del proyecto la configuración de depuración para el proyecto DLL para iniciar una aplicación externa que utiliza ese DLL (Propiedades del proyecto / depuración / Comando).

DLL nativos no se puede ejecutar independiente - que deben ejecutarse en el contexto de un programa. Ver esta parte de la página de instrucciones que se hace referencia.

"Si se inicia la depuración del proyecto que crea el archivo DLL, se debe especificar el ejecutable que desea utilizar en la depuración de la DLL."

Se podría encontrarse con este problema desde un proyecto gestionado también. Visual Studio lo que está diciendo es que no se puede ejecutar el archivo DLL, lo mismo que no se puede doble clic en un archivo DLL desde el Explorador, y tienen un programa de ejecución.

Con el fin de depurar la DLL, escribir una pequeña aplicación de consola que llama a las funciones de la DLL y ejerce su código. Si el archivo DLL tiene una función foo(), foo() llamada de main en su aplicación de consola. Establecer la aplicación de consola como el proyecto "Puesta en marcha", pulsando el botón derecho del nombre del proyecto en el Explorador de soluciones y seleccionar su opción.

A continuación, cuando se pulsa F5, que se ejecutará la aplicación de consola, que será llamar a la DLL.

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