Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Tutorial: Crear y utilizar un ensamblado administrado (C++)

Un ensamblado administrado es un tipo de biblioteca que puede crear para reutilizar el código eficazmente. En lugar de volver a implementar las mismas rutinas en muchos programas, puede escribirlas una vez y después hacer referencia a ellas desde las aplicaciones que necesiten esa funcionalidad.

En este tutorial, se tratan las tareas siguientes:

  • Crear un 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.

  • Usar la funcionalidad de la biblioteca de clases en la aplicación.

  • Ejecutar la aplicación.

Para completar este tutorial, debe comprender los conceptos básicos del lenguaje C++. Si todavía no conoce C++, le recomendamos el libro "C++ Beginner's Guide" escrito por Herb Schildt, disponible en Beginner Developer Learning Center, en el sitio web de MSDN.

Para crear un proyecto de biblioteca de clases

  1. En el menú Archivo, elija Nuevo y haga clic en Proyecto.

  2. En el recuadro Tipos de proyecto, bajo Visual C++, seleccione CLR.

    Cada tipo de proyecto de este grupo crea un proyecto destinado a Common Language Runtime (CLR).

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

  4. En el cuadro Nombre, escriba un nombre para el proyecto; por ejemplo, MathFuncsAssembly. En el campo Nombre de la solución, escriba un nombre para la solución, como ManagedAssemblies.

  5. Haga clic en Aceptar para crear el proyecto.

  6. De forma predeterminada, cuando se crea un proyecto, se configura para usar un encabezado precompilado. Para deshabilitar el encabezado precompilado para el proyecto MathFuncsAssembly, en el Explorador de soluciones, seleccione el proyecto y, a continuación, en el menú Proyecto, haga clic en Propiedades. Expanda el nodo Propiedades de configuración, expanda el nodo C/C++ y, a continuación, seleccione Encabezados precompilados. En la lista que aparece 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, 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, el asistente genera una clase básica. Tanto el archivo de encabezado generado como el archivo de origen tienen el mismo nombre que dio al proyecto cuando lo creó. En este ejemplo, se denominan MathFuncsAssembly.h y MathFuncsAssembly.cpp.

  2. Reemplace el código existente en MathFuncsAssembly.h utilizando una clase básica denominada MyMathFuncsAssembly. Esta clase realiza operaciones matemáticas comunes como suma, resta, multiplicación y división. El código debería ser similar al ejemplo 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 de MyMathFuncs en el archivo de origen. El código debería ser similar al ejemplo 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 haciendo clic en 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 las DLL, vea DLL.

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

  1. En el menú Archivo, elija Nuevo y haga clic en Proyecto.

  2. En el recuadro Tipos de proyecto, bajo Visual C++, seleccione CLR.

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

  4. En el cuadro Nombre, escriba un nombre para el proyecto; por ejemplo, MyExecRefsAssembly. En la lista situada al lado de Solución, seleccione Agregar a solución para agregar el nuevo proyecto a la solución que contiene la biblioteca de clases.

  5. Haga clic en Aceptar para crear el proyecto.

  6. Deshabilite el encabezado precompilado para el proyecto MyExecRefsAssembly; para ello, selecciónelo en el Explorador de soluciones y, a continuación, en el menú Proyecto, haga clic en Propiedades. Expanda el nodo Propiedades de configuración, expanda el nodo C/C++ y, a continuación, seleccione Encabezados precompilados. En la lista que aparece junto a Crear o utilizar encabezado precompilado, seleccione No utilizar encabezados precompilados. Haga clic en Aceptar para guardar estos cambios.

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

  1. Después de crear una aplicación de consola CLR, el asistente genera un programa que simplemente escribe "Hello World" en la consola. El archivo de origen generado tiene el mismo nombre que el que dio al proyecto cuando lo creó. 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 el proyecto MyExecRefsAssembly en el Explorador de soluciones y, a continuación, en el menú Proyecto, haga clic en Propiedades. En el cuadro de diálogo Páginas de propiedades, expanda el nodo Propiedades comunes, seleccione Marco de trabajo y referencias y, a continuación, haga clic en Agregar nueva referencia. Para obtener más información, vea Marco de trabajo y referencias, Propiedades comunes, Páginas de propiedades de <nombreDeProyecto> (Cuadro de diálogo).

  3. El cuadro de diálogo Agregar referencia 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 y, a continuación, haga clic en Aceptar.

    NotaNota

    Puede hacer referencia a un ensamblado directamente desde el archivo de origen mediante la inclusión de la directiva #using; por ejemplo, #using <MathFuncsAssembly.dll>. Para obtener más información, vea #using Directive (C/C++).

  4. Ahora puede usar la clase MyMathFuncs en esta aplicación. En MyExecRefsAssembly.cpp, reemplace el contenido de la función del archivo utilizando 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. Compile el archivo ejecutable; para ello, haga clic en la opción Generar solución del menú Generar.

Para ejecutar la aplicación

  1. Asegúrese de que MyExecRefsAssembly está seleccionado como proyecto predeterminado; para ello, seleccione MyExecRefsAssembly en el Explorador de soluciones y haga clic a continuación en Establecer como proyecto de inicio en el menú Proyecto.

  2. Para ejecutar el proyecto, en el menú Depurar, haga clic en Iniciar sin depurar. La salida debería ser similar al ejemplo siguiente.

    a + b = 106.4
    a - b = -91.6
    a * b = 732.6
    a / b = 0.0747474747474748
    

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft