none
Debugear una librería externa de C desde una solución WinForms en C# desde VS 2005 RRS feed

  • Pregunta

  • Hola,

    En el trabajo heredé un proyecto que ahora lo llevo yo. Esta es una solución con un proyecto de Windows Forms y otras librerías de clases en C# y una pequeña librería en C. Todo esto desarrollado en Visual Studio 2005. Yo soy un desarrollador de C# y ahora estoy teniendo problemas con la librería de C y no acierto a debugearlo. La estructura de la solución sería la siguiente:

        • Solución de VS2005
          • ProyectoWinForms
            • FromPrincipal
            • Form1
            • Form2
            • ...
          • LibreríaDeClasesC#
            • Clase1
            • Clase2
            • ...
            • LibreríaC.dll
          • LibreríaC
            • Fichero.h
            • Fichero.c

    El proyectoWinForms tiene como referencia a LibreríaDeClasesC#, pero LibreríaDeClasesC# no tiene como referencia a LibreríaC, sino que tiene añadido la dll directamente en su proyecto (supongo que será porque LibreríaC no está en .net) y desde una clase hace llamadas a la LibreríaC de la siguiente manera:

    [DllImport("LibreríaC.dll", EntryPoint = "nombreFunción")]
    public static extern UInt32 nombreFunción(UInt32 dest);

    Si pongo un breakpoint en el Fichero.c, al debugear no se detiene porque no se han cargado los símbolos. Si ejecuto la aplicación directamente desde ProyectoWinForms.exe y reproduzco el error, me sale una ventana con el título ProyectoWinForms.exe has stoped working con los botones Debug y Close program. Dándole al botón Debug luego elijo la solucción abierta de Visual Studio, me salta a una línea de Fichero.c con una flechita verde y aparece una ventana con el siguiente mensaje:

    Unhandled exception at 0x774e7094 in ProyectoWinForms.exe: 0xC0000005: Access violation.

    Pero no puedo hacer nada más y extraer más información.

    ¿Alguna sugerencia? ¿Qué puedo hacer?

    Un saludo y gracias de antemano.



    • Editado Jon 123 viernes, 9 de mayo de 2014 10:14
    jueves, 8 de mayo de 2014 14:42

Respuestas

  • Para debugear la Librería de C, dentro de la propiedades de los proyectos de C# en la pestaña Debug hay que marcar la opción Enable unmanaged code debugging.
    • Marcado como respuesta Jon 123 martes, 13 de mayo de 2014 7:09
    martes, 13 de mayo de 2014 7:09