Pregunta

Tengo un proyecto vb que llama a funciones en un dll. El dll se crea en un proyecto independiente vs (portaudio), que se escribe en c.

El proyecto dll c compila limpio y construye el dll requerido, que actualmente estoy colocando en c: \ windows \ system para que vb runtime pueda verlo.

El proyecto VB vive en c: \ devprojects \ vbtest

C Project vive en c: \ devprojects \ portaudio con el archivo del proyecto en c: \ devprojects \ portaudio \ build \ msvc. Dll creado en Win32 \ debug en este directorio msvc.

Cuando llamo a la función dll, ¿es posible que el vs depurador pase por la función c en el dll? Tengo todo el código, etc., pero no sé si VS2005 admite este tipo de depuración de lenguaje mixto.

Si esto es posible, ¿podría aconsejarme cómo debo configurar mi Visual Studio para lograrlo?

Muchas gracias David

¿Fue útil?

Solución

No es necesario tener ambos proyectos en la misma solución, pero debe compilar ambos proyectos con los símbolos de depuración habilitados.

Ahora, en su Proyecto / Propiedades de solución de red VB, en la pestaña Depurar, asegúrese de que " Habilitar la depuración de código no administrado " está marcado.

También asegúrese de que el archivo dll cargado esté en el mismo lugar donde se compiló, de lo contrario es posible que no encuentre el pdb donde se almacenan los símbolos de depuración.

Otros consejos

Cree una solución con ambos proyectos, agregue la referencia en el proyecto VB al proyecto C usando el diálogo 'Agregar referencia ...' - > Proyecte y construya todos en modo de depuración.

¿Cómo se llama C dll desde VB?

Si es VB.NET, entonces esto es muy fácil, simplemente configure una solución con ambos proyectos debajo, configure sus dependencias y asegúrese de que al compilar la versión de depuración del proyecto VB se vincule a la lib / dll de depuración producida desde su proyecto C ++ Visual Studio hace el resto.

He hecho esto antes un par de veces con aplicaciones de C # que llaman a un dll de C ++. No tenía la intención de configurar esto, pero intenté pasar mientras depuraba, suponiendo que obtendría la lista de ensamblaje y al menos podría resolver algo de lo que estaba mal con mi código ... sin embargo, cargó el archivo .cpp correcto y me permitió seguir leyendo ese código.

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