Exportar (0) Imprimir
Expandir todo

Tutorial: Crear y utilizar un ensamblado administrado

En este tutorial, creará un ensamblado administrado que contiene rutinas útiles que pueden ser utilizadas por otras aplicaciones. El uso de ensamblados administrados es una buena manera de reutilizar el código. En lugar de volver a implementar estas rutinas en todos los programas que cree, escríbalas una vez y haga referencia a ellas desde las aplicaciones que necesiten esa funcionalidad.

Este tutorial utiliza Visual C++ y está orientado a Common Language Runtime. Para ver un tutorial que utiliza código C++ nativo, vea Tutorial: Crear y utilizar una biblioteca de vínculos dinámicos o Tutorial: Crear y utilizar una biblioteca estática.

En este tutorial se trata lo siguiente:

  • Crear un nuevo proyecto de biblioteca de clases

  • Agregar una clase a la biblioteca de clases

  • Crear una aplicación que haga referencia a la biblioteca de clases

  • Utilizar la funcionalidad de la biblioteca de clases en la aplicación de consola

  • Ejecutar la aplicación

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

Para crear un nuevo proyecto de biblioteca de clases

  1. En el menú Archivo, haga clic en Nuevo y, a continuación, seleccione Proyecto….

  2. En el panel Tipos de proyecto, en Visual C++, seleccione CLR. Esto crea un proyecto orientado a Common Language Runtime.

  3. En el panel Plantillas, seleccione Biblioteca de clases.

  4. Elija un nombre para el proyecto, como MathFuncsAssembly, y escríbalo en el campo Nombre. Elija un nombre para la solución, como ManagedAssemblies, y escríbalo en el campo Nombre.

  5. Haga clic en Aceptar para crear el proyecto.

  6. De forma predeterminada, cuando se crean nuevos proyectos, están configurados para utilizar encabezados precompilados. Para deshabilitar el encabezado precompilado, seleccione Propiedades en el menú Proyecto. Expanda el nodo Propiedades de configuración, a continuación, expanda el nodo C/C++ y seleccione Encabezados precompilados. En la lista desplegable al lado de Crear o utilizar encabezado precompilado, seleccione No utilizar encabezados precompilados. Haga clic en Aceptar para guardar estos cambios. Para obtener más información acerca de los encabezados precompilados, vea Crear archivos de encabezado precompilados.

Para agregar una clase a la biblioteca de clases

  1. Después de crear una nueva biblioteca de clases CLR, se crea una clase sencilla. Los nombres para el archivo de encabezado y el archivo de código fuente serán iguales que el nombre elegido para el proyecto anterior. En este ejemplo, se denominan MathFuncsAssembly.h y MathFuncsAssembly.cpp.

  2. Reemplace el código existente en MathFuncsAssembly.h por una clase sencilla llamada MyMathFuncsAssembly para realizar operaciones matemáticas comunes, como suma, resta, multiplicación y división. El código debe tener una apariencia similar a la siguiente:

    // MathFuncsAssembly.h
    
    using namespace System;
    
    namespace MathFuncs
    {
        public ref class MyMathFuncs
        {
        public:
            // Returns a + b
            static double Add(double a, double b);
    
            // Returns a - b
            static double Subtract(double a, double b);
    
            // Returns a * b
            static double Multiply(double a, double b);
    
            // Returns a / b
            // Throws DivideByZeroException if b is 0
            static double Divide(double a, double b);
        };
    }
    
  3. Implemente la funcionalidad para MyMathFuncs en el archivo de código fuente. El código debe tener una apariencia similar a la siguiente:

    // MathFuncsAssembly.cpp
    // compile with: /clr /LD
    
    #include "MathFuncsAssembly.h"
    
    namespace MathFuncs
    {
        double MyMathFuncs::Add(double a, double b)
        {
            return a + b;
        }
    
        double MyMathFuncs::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double MyMathFuncs::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double MyMathFuncs::Divide(double a, double b)
        {
            if (b == 0)
            {
                throw gcnew DivideByZeroException("b cannot be zero!");
            }
    
            return a / b;
        }
    }
    
  4. Compile la biblioteca de clases seleccionando Generar solución en el menú Generar. Esto crea una biblioteca de vínculos dinámicos (DLL) que puede ser utilizada por otros programas. Para obtener más información sobre archivos DLL, consulte Archivos DLL.

Para crear una aplicación que haga referencia a la biblioteca de clases

  1. Para crear una aplicación que haga referencia y utilice la biblioteca de clases que se acaba de crear, en el menú Archivo, seleccione Nuevo y luego Proyecto….

  2. En el panel Tipos de proyecto, en Visual C++, seleccione CLR. Esto crea un proyecto orientado a Common Language Runtime.

  3. En el panel Plantillas, seleccione Aplicación de consola CLR.

  4. Elija un nombre para el proyecto, como MyExecRefsAssembly, y escríbalo en el campo Nombre. Junto a Solución, seleccione Agregar a solución en la lista desplegable. Esto agregará el nuevo proyecto a la misma solución que la biblioteca de clases.

  5. Haga clic en Aceptar para crear el proyecto.

  6. De forma predeterminada, cuando se crean nuevos proyectos, están configurados para utilizar encabezados precompilados. Para deshabilitar el encabezado precompilado, seleccione Propiedades en el menú Proyecto. Expanda el nodo Propiedades de configuración, a continuación, expanda el nodo C/C++ y seleccione Encabezados precompilados. En la lista desplegable junto a Crear o utilizar encabezado precompilado, seleccione No utilizar encabezados precompilados. Haga clic en Aceptar para guardar estos cambios. Para obtener más información acerca de los encabezados precompilados, vea Crear archivos de encabezado precompilados.

Para utilizar la funcionalidad de la biblioteca de clases en la aplicación de consola

  1. Después de crear una nueva aplicación de consola CLR, se crea un programa que escribe simplemente "Hola a todos" en la consola. El nombre del archivo de código fuente será el mismo que el elegido para el proyecto anterior. En este ejemplo, se llama MyExecRefsAssembly.cpp.

  2. Para utilizar las rutinas matemáticas que se crearon en la biblioteca de clases, debe hacer referencia a ella. Para ello, seleccione Referencias... en el menú Proyecto. En el cuadro de diálogo Páginas de propiedades, expanda el nodo Propiedades comunes y seleccione Referencias. Haga clic después en el botón Agregar nueva referencia…. Para obtener más información sobre el cuadro de diálogo Referencias…, vea Referencias, Propiedades comunes, Páginas de propiedades de <Nombre de proyecto> (Cuadro de diálogo).

  3. Aparecerá el cuadro de diálogo Agregar referencia. Este cuadro de diálogo muestra todas las bibliotecas a las que puede hacer referencia. La ficha .NET muestra las bibliotecas que se incluyen con .NET Framework. La ficha COM muestra todos los componentes COM de su equipo. La ficha Proyecto enumera todos los proyectos de la solución actual y las bibliotecas que contienen. En la ficha Proyectos, seleccione MathFuncsAssembly. Seleccione Aceptar. Para obtener más información sobre el cuadro de diálogo Agregar referencia, vea Agregar referencia (Cuadro de diálogo).

    NoteNota

    También puede hacer referencia a un ensamblado directamente desde el archivo de código fuente mediante la inclusión de la directiva #using, como en #using <MathFuncsAssembly.dll>. Para obtener más información sobre esta directiva, vea The #using Directive.

  4. Ahora puede utilizar la clase MyMathFuncs en esta aplicación. En MyExecRefsAssembly.cpp, reemplace el contenido de la función del archivo por el código siguiente:

    // MyExecRefsAssembly.cpp
    // compile with: /clr /FUMathFuncsAssembly.dll
    
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
        double a = 7.4;
        int b = 99;
    
        Console::WriteLine("a + b = {0}",
            MathFuncs::MyMathFuncs::Add(a, b));
        Console::WriteLine("a - b = {0}",
            MathFuncs::MyMathFuncs::Subtract(a, b));
        Console::WriteLine("a * b = {0}",
            MathFuncs::MyMathFuncs::Multiply(a, b));
        Console::WriteLine("a / b = {0}",
            MathFuncs::MyMathFuncs::Divide(a, b));
    
        return 0;
    }
    
  5. Genere el ejecutable seleccionando Generar solución en el menú Generar.

Para ejecutar la aplicación

  1. Asegúrese de que MyExecRefsAssembly está seleccionado como proyecto predeterminado. En el Explorador de soluciones, seleccione MyExecRefsAssembly y, a continuación, 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.0747474747474748
    

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft