Está en la página 1de 6

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 1 de 6

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos


Visual Studio 2005 En este tutorial, crear una biblioteca de vnculos dinmicos (DLL) que contiene rutinas tiles que pueden ser utilizadas por otras aplicaciones. El uso de archivos DLL es una buena manera de reutilizar el cdigo. En lugar de volver a implementar estas rutinas en todos los programas que cree, escrbalas una vez y haga referencia a ellas desde las aplicaciones que necesiten esa funcionalidad. Este tutorial utiliza C++ nativo. Para ver un tutorial que utiliza C++ nativo con el fin de crear una biblioteca esttica, vea Tutorial: Crear y utilizar una biblioteca esttica1. Para ver un tutorial que utiliza Visual C++ para Common Language Runtime, vea Tutorial: Crear y utilizar un ensamblado administrado2. En este tutorial se trata lo siguiente: Crear un nuevo proyecto de biblioteca de vnculos dinmicos (DLL) Agregar una clase a la biblioteca de vnculos dinmicos Crear una aplicacin que haga referencia a la biblioteca de vnculos dinmicos Utilizar la funcionalidad de la biblioteca de clases en la aplicacin de consola Ejecutar la aplicacin

Requisitos previos
En este tema se da por supuesto que conoce los fundamentos del lenguaje C++.

Para crear un nuevo proyecto de biblioteca de vnculos dinmicos (DLL)


1. En el men Archivo, haga clic en Nuevo y, a continuacin, en Proyecto. 2. En el panel Tipos de proyecto, en Visual C++, seleccione Win32. 3. En el panel Plantillas, seleccione Aplicacin de consola Win32. 4. Elija un nombre para el proyecto, como MathFuncsDll, y escrbalo en el campo Nombre. Elija un nombre para la solucin, como DynamicLibrary, y escrbalo en el campo Nombre. 5. Haga clic en Aceptar para iniciar el asistente para aplicaciones Win32. En la pgina Informacin general del cuadro de dilogo Asistente para aplicaciones Win32, haga clic en Siguiente. 6. En la pgina Configuracin de la aplicacin del Asistente para aplicaciones Win32, en Tipo de aplicacin, seleccione DLL si est disponible o Aplicacin de consola si DLL no est disponible. Algunas versiones de Visual Studio no admiten la creacin de un proyecto de archivo DLL mediante asistentes. Puede cambiar esto posteriormente para que el proyecto se compile en un archivo DLL. 7. En la pgina Configuracin de la aplicacin del Asistente para aplicaciones Win32, en Opciones adicionales, seleccione Proyecto vaco.

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 2 de 6

8. Haga clic en Finalizar para crear el proyecto.

Para agregar una clase a la biblioteca de vnculos dinmicos


1. Para crear un archivo de encabezado para una nueva clase, en el men Proyecto, seleccione Agregar nuevo elemento.... Aparecer el cuadro de dilogo Agregar nuevo elemento. En el panel Categoras, en Visual C++, seleccione Cdigo. En el panel Plantillas, seleccione Archivo de encabezado (.h). Elija un nombre para el archivo de encabezado, como MathFuncsDll.h, y haga clic en Agregar. Se mostrar un archivo vaco. 2. Agregue una clase simple denominada MyMathFuncs para hacer operaciones matemticas comunes, como suma, resta, multiplicacin y divisin. El cdigo debe tener una apariencia similar a la siguiente:

//MathFuncsDll.h namespaceMathFuncs { classMyMathFuncs { public: //Returnsa+b static__declspec(dllexport)doubleAdd(doublea,doubleb); //Returnsa b static__declspec(dllexport)doubleSubtract(doublea,doubleb); //Returnsa*b static__declspec(dllexport)doubleMultiply(doublea,doubleb); //Returnsa/b //ThrowsDivideByZeroExceptionifbis0 static__declspec(dllexport)doubleDivide(doublea,doubleb); }; } 3. Tenga en cuenta el modificador __declspec(dllexport) en las declaraciones de mtodo anteriores. Estos modificadores permiten que el archivo DLL exporte el mtodo por lo que pueden ser utilizados por otras aplicaciones. Para obtener ms informacin, vea dllexport, 3 dllimport . 4. Para crear un archivo de cdigo fuente para una nueva clase, en el men Proyecto, seleccione Agregar nuevo elemento.... Aparecer el cuadro de dilogo Agregar nuevo elemento. En el panel Categoras, en Visual C++, seleccione Cdigo. En el panel Plantillas, seleccione Archivo C++ (.cpp). Elija un nombre para el archivo de cdigo fuente, como MathFuncsDll.cpp, y haga clic en Agregar. Se mostrar un archivo vaco. 5. Implemente la funcionalidad para MyMathFuncs en el archivo de cdigo fuente. El cdigo debe tener una apariencia similar a la siguiente:

//MathFuncsDll.cpp //compilewith:/EHsc/LD

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 3 de 6

#include"MathFuncsDll.h" #include<stdexcept> usingnamespacestd; namespaceMathFuncs { doubleMyMathFuncs::Add(doublea,doubleb) { returna+b; } doubleMyMathFuncs::Subtract(doublea,doubleb) { returna b; } doubleMyMathFuncs::Multiply(doublea,doubleb) { returna*b; } doubleMyMathFuncs::Divide(doublea,doubleb) { if(b==0) { thrownewinvalid_argument("bcannotbezero!"); } returna/b; } } 6. Para generar el proyecto en un archivo DLL, en el men Proyecto, seleccione Propiedades de MathFuncsDll. En el panel izquierdo, en Propiedades de configuracin, seleccione General. En el panel derecho, cambie el Tipo de configuracin a Biblioteca dinmica (.dll). Haga clic en Aceptar para guardar los cambios. Nota Si est generando desde la lnea de comandos, utilice la opcin del compilador /LD para especificar que el archivo de resultados debera ser un archivo DLL. Para obtener ms 4 informacin, vea /MD, /MT, /LD (Utilizar la biblioteca en tiempo de ejecucin) .

7. Compile la biblioteca de vnculos dinmicos seleccionando Generar solucin en el men Generar. Esto crea un archivo DLL que puede ser utilizado por otros programas. Para 5 obtener ms informacin sobre archivos DLL, consulte Archivos DLL .

Para crear una aplicacin que haga referencia a la biblioteca de vnculos dinmicos
1. Para crear una aplicacin que haga referencia y utilice la biblioteca de vnculos dinmicos que se acaba de crear, en el men Archivo, seleccione Nuevo y luego Proyecto.

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 4 de 6

2. En el panel Tipos de proyecto, en Visual C++, seleccione Win32. 3. En el panel Plantillas, seleccione Aplicacin de consola Win32. 4. Elija un nombre para el proyecto, como MyExecRefsDll, y escrbalo en el campo Nombre. Junto a Solucin, seleccione Agregar a solucin en la lista desplegable. Esto agregar el nuevo proyecto a la misma solucin que la biblioteca de vnculos dinmicos. 5. Haga clic en Aceptar para iniciar el Asistente para aplicaciones Win32. En la pgina Informacin general del cuadro de dilogo Asistente para aplicaciones Win32, haga clic en Siguiente. 6. En la pgina Configuracin de la aplicacin del Asistente para aplicaciones Win32, en Tipo de aplicacin, seleccione Aplicacin de consola. 7. En la pgina Configuracin de la aplicacin del Asistente para aplicaciones Win32, en Opciones adicionales, cancele la seleccin de Encabezado precompilado. 8. Haga clic en Finalizar para crear el proyecto.

Para utilizar la funcionalidad de la biblioteca de clases en la aplicacin de consola


1. Despus de crear una nueva consola de aplicacin, se crea un programa vaco. El nombre del archivo de cdigo fuente ser el mismo que el elegido para el proyecto anterior. En este ejemplo, se llama MyExecRefsDll.cpp. 2. Para utilizar las rutinas matemticas que se crearon en la biblioteca de vnculos dinmicos, debe hacer referencia a ella. Para ello, seleccione Referencias... en el men Proyecto. En el cuadro de dilogo Pginas de propiedades, expanda el nodo Propiedades comunes y seleccione Referencias. Haga clic despus en el botn Agregar nueva referencia. Para obtener ms informacin sobre el cuadro de dilogo Referencias, vea Referencias, Propiedades comunes, Pginas de propiedades de <Nombre de proyecto> (Cuadro de 6 dilogo) . 3. Aparecer el cuadro de dilogo Agregar referencia. Este cuadro de dilogo muestra todas las bibliotecas a las que puede hacer referencia. La ficha Proyecto enumera todos los proyectos de la solucin actual y las bibliotecas que contienen. En la ficha Proyectos, seleccione MathFuncsDll. Seleccione Aceptar. Para obtener ms informacin sobre el cuadro de dilogo Agregar referencia, vea Agregar referencia (Cuadro de dilogo)7. 4. Para hacer referencia a los archivos de encabezado de la biblioteca de vnculos dinmicos, debe modificar la ruta de acceso de los directorios de inclusin. Para ello, en el cuadro de dilogo Pginas de propiedades, expanda el nodo Propiedades de configuracin, a continuacin el nodo C/C++ y seleccione General. Junto a Directorios de inclusin adicionales, escriba la ruta de acceso a la ubicacin del archivo de encabezado MathFuncsDll.h. 5. La aplicacin ejecutable no carga las bibliotecas de vnculos dinmicos hasta el tiempo de ejecucin. Debe indicar al sistema dnde buscar MathFuncsDll.dll. Esto se realiza mediante la variable de entorno PATH. Para ello, en el cuadro de dilogo Pginas de propiedades, expanda el nodo Propiedades de configuracin y seleccione Depuracin. Junto a Entorno, escriba lo siguiente: PATH=<path to MathFuncsDll.dll file>, donde <path to MathFuncsDll.dll file> se reemplaza por la ubicacin real de MathFuncsDll.dll. Haga clic en Aceptar para guardar todos los cambios realizados. Nota

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 5 de 6

Si va a ejecutar la aplicacin ejecutable desde la lnea de comandos en vez de desde Visual Studio, debe actualizar la variable de entorno PATH manualmente desde la lnea de comandos del modo siguiente: set PATH=%PATH%;<path to MathFuncsDll.dll file>, donde <path to MathFuncsDll.dll file> se reemplaza por la ubicacin real de MathFuncsDll.dll.

6. Ahora puede utilizar la clase MyMathFuncs en esta aplicacin. Reemplace el contenido de MyExecRefsDll.cpp por el cdigo siguiente:

//MyExecRefsDll.cpp //compilewith:/EHsc/linkMathFuncsDll.lib #include<iostream> #include"MathFuncsDll.h" usingnamespacestd; intmain() { doublea=7.4; intb=99; cout<<"a+b="<< MathFuncs::MyMathFuncs::Add(a,b)<<endl; cout<<"a b="<< MathFuncs::MyMathFuncs::Subtract(a,b)<<endl; cout<<"a*b="<< MathFuncs::MyMathFuncs::Multiply(a,b)<<endl; cout<<"a/b="<< MathFuncs::MyMathFuncs::Divide(a,b)<<endl; return0; } 7. Genere el ejecutable seleccionando Generar solucin en el men Generar.

Para ejecutar la aplicacin


1. Asegrese de que MyExecRefsDll est seleccionado como proyecto predeterminado. En el Explorador de soluciones, seleccione MyExecRefsDll y, a continuacin, seleccione Establecer como proyecto de inicio en el men Proyecto. 2. Para ejecutar el proyecto, seleccione Iniciar sin depurar en el men Depurar. El resultado debe tener la apariencia siguiente:

a+b=106.4 a b=91.6 a*b=732.6 a/b=0.0747475

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

Tutorial: Crear y utilizar una biblioteca de vnculos dinmicos

Pgina 6 de 6

Vea tambin
Conceptos Archivos DLL5 Otros recursos Paseo guiado por Visual C++ 9 Conceptos generales
8

Tabla de vnculos
1 2 3 4 5 6 7 8 9

http://msdn.microsoft.com/es-es/library/ms235627(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/ms235638(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/3y1sfaz2(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/2kzt1wy3(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/1ez7dh12(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/47w1hdab(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/ftcwa60a(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/ms235630(v=vs.80).aspx http://msdn.microsoft.com/es-es/library/9ec4c5e4(v=vs.80).aspx

Contenido de la comunidad

2012 Microsoft. Reservados todos los derechos.

http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx

29/11/2012

También podría gustarte