Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pgina 1 de 6
Requisitos previos
En este tema se da por supuesto que conoce los fundamentos del lenguaje C++.
http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx
29/11/2012
Pgina 2 de 6
//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
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
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.
http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx
29/11/2012
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.
http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx
29/11/2012
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
Contenido de la comunidad
http://msdn.microsoft.com/es-es/library/ms235636(d=printer,v=vs.80).aspx
29/11/2012