Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un archivo DLL (biblioteca de vínculos dinámicos) es una biblioteca que contiene código y datos que pueden usar más de una aplicación. Puede usar Visual Studio para crear, compilar, configurar y depurar archivos DLL.
Creación de un archivo DLL
Las siguientes plantillas de proyecto de Visual Studio pueden crear archivos DLL:
- Biblioteca de clases (.NET, .NET Framework y otras plataformas de aplicaciones)
- Biblioteca de controles de Windows Forms (.NET y .NET Framework)
- Biblioteca (DLL) Dynamic-Link (C++)
La depuración de una biblioteca de controles de Formularios Windows Forms es similar a la depuración de una biblioteca de clases. Para obtener más información, vea Controles de Formularios Windows Forms.
Normalmente, se llama a un archivo DLL desde otro proyecto. Al depurar el proyecto que realiza la llamada, según la configuración del archivo DLL, se puede ejecutar el código DLL paso a paso por instrucciones y depurarlo.
Configuración de depuración de DLL
Cuando se usa una plantilla de proyecto de Visual Studio para crear una aplicación, Visual Studio crea de forma automática los valores necesarios para las configuraciones de compilación de depuración y de versión. Puede cambiar esta configuración si es necesario. Para obtener más información, consulte los artículos siguientes:
- Cómo: Establecer configuraciones de depuración y distribución
- Configuración del proyecto para una configuración de depuración de C++
- Opciones de proyecto para configuraciones de depuración de C# de .NET
- Configuración del proyecto para configuraciones de depuración en C#
- Configuración del proyecto para una configuración de depuración de Visual Basic
Establecimiento de DebuggableAttribute de C++
Para que el depurador se conecte a un archivo DLL de C++, el código de C++ debe emitir DebuggableAttribute
.
Para establecer DebuggableAttribute
:
Seleccione el proyecto DLL de C++ en el Explorador de soluciones y seleccione el icono Propiedades , o bien haga clic con el botón derecho en el proyecto y seleccione Propiedades.
En el panel Propiedades, en Enlazador>Depuración, seleccione Sí (/ASSEMBLYDEBUG) como Ensamblado depurable.
Para obtener más información, vea /ASSEMBLYDEBUG.
Establecer ubicaciones de archivos DLL de C/C++
Para depurar un archivo DLL externo, un proyecto de llamada debe ser capaz de encontrar el archivo DLL, su archivo .pdb y cualquier otro archivo que requiera el archivo DLL. Puede crear una tarea de compilación personalizada para copiar estos archivos en la <carpeta> del proyecto\Depurar carpeta de salida, o bien puede copiar los archivos allí manualmente.
En el caso de los proyectos de C/C++, puede establecer ubicaciones de archivos de encabezado y LIB en las páginas de propiedades del proyecto, en lugar de copiarlas en la carpeta de salida.
Para establecer las ubicaciones de encabezado y archivo LIB de C/C++:
Seleccione el proyecto DLL de C/C++ en el Explorador de soluciones y seleccione el icono Propiedades , o haga clic con el botón derecho en el proyecto y seleccione Propiedades.
En la parte superior del panel Propiedades , en Configuración, seleccione Todas las configuraciones.
EnDirectorios de inclusión adicionales de >>, especifique la carpeta que tiene archivos de encabezado.
En Enlazador>General>Directorios de bibliotecas adicionales, especifique la carpeta que tiene archivos LIB.
En Enlazador>Entrada>Dependencias adicionales, especifique la ruta y el nombre completo de los archivos LIB.
Selecciona Aceptar.
Para obtener más información sobre la configuración del proyecto de C++, consulta Referencia de la página de propiedades de Windows C++.
Compilación de una versión de depuración
Asegúrese de compilar una versión de depuración del archivo DLL antes de iniciar la depuración. Para depurar un archivo DLL, una aplicación que llama debe ser capaz de encontrar su archivo .pdb y cualquier otro archivo que requiera el archivo DLL. Para obtener más información, vea Cómo: Establecer configuraciones Debug y Release.
Se puede crear una tarea de compilación personalizada para copiar estos archivos DLL en la carpeta de salida <carpeta de proyecto que llama>\Debug o se pueden copiar los archivos en ella manualmente.
Asegúrese de llamar al archivo DLL en su ubicación correcta. Esto puede resultar obvio, pero si una aplicación que realiza llamadas encuentra y carga una copia diferente del DLL, el depurador nunca llegará a los puntos de interrupción que has establecido.
Depurar un DLL
No se puede ejecutar un archivo DLL directamente. Debe llamarla una aplicación, normalmente un archivo .exe .
Para depurar un archivo DLL, puede iniciar la depuración desde la aplicación que realiza la llamada o depurar desde el proyecto DLL especificando su aplicación que realiza la llamada. También puede usar la ventana Inmediato del depurador para evaluar las funciones o los métodos del archivo DLL en tiempo de diseño, sin usar una aplicación que llama.
Inicio de la depuración desde la aplicación que realiza la llamada
La aplicación que llama a un archivo DLL puede ser:
- Una aplicación de un proyecto de Visual Studio que forme parte de la misma solución que el archivo DLL o de otra.
- Una aplicación existente que ya está implementada y en ejecución en un equipo de prueba o producción.
- Se encuentra en la web y se accede a través de una dirección URL.
- Una aplicación web con una página web que inserta el archivo DLL.
Para poder iniciar la depuración de la aplicación que realiza la llamada, establezca un punto de interrupción en el archivo DLL. Consulte Introducción a los puntos de interrupción. Al llegar al punto de interrupción del archivo DLL, se puede recorrer el código paso a paso y observar la acción en cada línea. Para más información, vea Navegue por el código con el depurador de Visual Studio.
Para depurar un archivo DLL desde una aplicación que llama, puede:
Abra el proyecto para la aplicación que realiza la llamada e inicie la depuración seleccionando Depurar> o presionando F5.
o
Conéctese a una aplicación que ya esté implementada y ejecutándose en un equipo de prueba o producción. Utiliza este método para DLLs en sitios web o aplicaciones web. Para obtener más información, consulte Conectar a un proceso en ejecución.
Durante la depuración, puede usar la ventana Módulos para verificar las DLLs y los archivos .exe que carga la aplicación. Para abrir la ventana Módulos, seleccione Depurar>Ventanas>Módulos durante la depuración. Para obtener más información, vea Cómo: Usar la ventana Módulos.
Uso de la ventana Inmediato
Puede usar la ventana Inmediato para evaluar funciones o métodos DLL en tiempo de diseño. La ventana Inmediato desempeña el papel de una aplicación que realiza una llamada.
Nota:
Puede utilizar la ventana Inmediato durante el diseño con la mayoría de los tipos de proyectos. No se admite para SQL, proyectos web ni script.
Por ejemplo, para probar un método denominado Test
en la clase Class1
:
Con el proyecto DLL abierto, abra la ventana Inmediato seleccionando Depurar>Windows>Immediate o presionando Ctrl+Alt+I.
Cree una instancia de un objeto de tipo
Class1
escribiendo el siguiente código de C# en la ventana Inmediato y presionando Entrar. Este código administrado funciona para C# y Visual Basic, con los cambios de sintaxis adecuados:Class1 obj = new Class1();
En C#, todos los nombres deben estar completos. Los métodos o variables deben estar en el ámbito y el contexto actuales cuando el servicio de lenguaje intenta evaluar la expresión.
Suponiendo que
Test
toma unint
parámetro, evalúeTest
mediante la ventana Inmediato :?obj.Test(10);
El resultado se imprime en la ventana Inmediato .
Para continuar la depuración de
Test
, coloque un punto de interrupción dentro de ella y evalúe nuevamente la función.Se llegará al punto de interrupción y podrá recorrer
Test
paso a paso. Después de que la ejecución sale deTest
, el depurador regresa al modo de diseño.
Depuración en modo mixto
Puede escribir una aplicación de llamada para un archivo DLL en código administrado o nativo. Si la aplicación nativa llama a un archivo DLL administrado y desea depurar ambos, puede habilitar los depuradores administrados y nativos en las propiedades del proyecto. El proceso exacto depende de si quiere iniciar la depuración desde el proyecto DLL o desde el proyecto de la aplicación que hace la llamada. Para obtener más información, vea Cómo: Depurar en modo mixto.
También puede depurar un archivo DLL nativo desde un proyecto que llama administrado. Para obtener más información, consulte Cómo depurar código administrado y nativo.
Contenido relacionado
- Depuración del código administrado
- Prepárate para depurar proyectos de C++
- tipos de proyecto de C#, F#, y Visual Basic
- Configuración del proyecto para una configuración de depuración de C++
- Opciones de proyecto para configuraciones de depuración de C# de .NET
- Opciones del proyecto para configuraciones de depuración de C#
- Configuración del proyecto para una configuración de depuración de Visual Basic
- Seguridad del depurador