¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Importante Es posible que este documento no represente los procedimientos recomendados para el desarrollo actual. Puede que los vínculos a las descargas y otros recursos ya no sean válidos. Encontrará aquí la versión que se recomienda en la actualidad.

Crear y utilizar una biblioteca estática (C++)

Actualización: noviembre 2007

El siguiente tipo de biblioteca que crearemos es una biblioteca estática (LIB). Utilizar bibliotecas estáticas es una gran manera de reutilizar el código. En lugar de volver a implementar las mismas rutinas en todos los programas que cree, escríbalas una vez y haga referencia a ellas desde las aplicaciones que necesiten esa funcionalidad.

En este tutorial se trata lo siguiente:

  • Crear un nuevo proyecto de biblioteca estática.

  • Agregar una clase a la biblioteca estática.

  • Crear una aplicación que haga referencia a la biblioteca estática.

  • Utilizar la funcionalidad de la biblioteca estática en la aplicación de consola.

  • Ejecutar la aplicación.

En este tema se da por supuesto que conoce los fundamentos del lenguaje C++. Si está empezando a aprender C++, le recomendamos el libro "C++ Beginner's Guide" escrito por Herb Schildt, disponible en línea en http://go.microsoft.com/fwlink/?LinkId=115303.

Para crear un nuevo proyecto de biblioteca estática

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

  2. En el panel Tipos de proyecto, en Visual C++, seleccione Win32.

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

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

  5. Haga clic en Aceptar para iniciar el asistente para aplicaciones Win32. En la página Información general del cuadro de diálogo Asistente para aplicaciones Win32, haga clic en Siguiente.

  6. En la página Configuración de la aplicación del Asistente para aplicaciones Win32, en Tipo de aplicación, seleccione Biblioteca estática.

  7. En la página Configuración de la aplicación del Asistente para aplicaciones Win32, en Opciones adicionales, desactive la casilla Encabezado precompilado.

  8. Haga clic en Finalizar para crear el proyecto.

Para agregar una clase a la biblioteca estática

  1. Para crear un archivo de encabezado para una nueva clase, en el menú Proyecto, seleccione Agregar nuevo elemento.... Aparece el cuadro de diálogo Agregar nuevo elemento. En el panel Categorías, en Visual C++, seleccione Código. En el panel Plantillas, seleccione Archivo de encabezado (.h). Elija un nombre para el archivo de encabezado, como MathFuncsLib.h, y haga clic en Agregar. Se mostrará un archivo vacío.

  2. Agregue una clase simple denominada MyMathFuncs para hacer operaciones matemáticas comunes, como suma, resta, multiplicación y división. El código debe tener una apariencia similar a la siguiente:

    // MathFuncsLib.h
    
    namespace MathFuncs
    {
        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. Para crear un archivo de código fuente para una nueva clase, en el menú Proyecto, seleccione Agregar nuevo elemento.... Aparece el cuadro de diálogo Agregar nuevo elemento. En el panel Categorías, en Visual C++, seleccione Código. En el panel Plantillas, seleccione Archivo C++ (.cpp). Elija un nombre para el archivo de código fuente, como MathFuncsLib.cpp, y haga clic en Agregar. Se mostrará un archivo vacío.

  4. Implemente la funcionalidad para MyMathFuncs en el archivo de código fuente. El código debe tener una apariencia similar a la siguiente:

    // MathFuncsLib.cpp
    // compile with: /c /EHsc
    // post-build command: lib MathFuncsLib.obj
    
    #include "MathFuncsLib.h"
    
    #include <stdexcept>
    
    using namespace std;
    
    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 new invalid_argument("b cannot be zero!");
            }
    
            return a / b;
        }
    }
    
  5. Para generar el proyecto en una biblioteca estática, en el menú Proyecto, seleccione Propiedades… de MathFuncsLib. En el panel izquierdo, en Propiedades de configuración, seleccione General. En el panel derecho, cambie el Tipo de configuración a Biblioteca estática (.lib). Haga clic en Aceptar para guardar los cambios.

    ms235627.alert_note(es-es,VS.90).gifNota:

    Cuando genere desde la línea de comandos, debe generar el programa en dos pasos. En primer lugar, compile el código utilizando Cl.exe con la opción del compilador /c (cl /c /EHsc MathFuncsLib.cpp). Esto creará un archivo objeto denominado MathFuncsLib.obj. Para obtener más información, vea /c (Compilar sin vincular). En segundo lugar, vincule el código mediante el Administrador de bibliotecas Lib.exe (lib MathFuncsLib.obj). Esto creará la biblioteca estática MathFuncsLib.lib. Para obtener más información sobre el Administrador de bibliotecas, vea Referencia de LIB.

  6. Compile la biblioteca estática seleccionando Generar solución en el menú Generar. Esto crea una biblioteca estática que puede ser utilizada por otros programas.

Para crear una aplicación que haga referencia a la biblioteca estática

  1. Para crear una aplicación que haga referencia y utilice la biblioteca estática 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 Win32.

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

  4. Elija un nombre para el proyecto, como MyExecRefsLib, 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 estática.

  5. Haga clic en Aceptar para iniciar el Asistente para aplicaciones Win32. En la página Información general del cuadro de diálogo Asistente para aplicaciones Win32, haga clic en Siguiente.

  6. En la página Configuración de la aplicación del Asistente para aplicaciones Win32, en Tipo de aplicación, seleccione Aplicación de consola.

  7. En la página Configuración de la aplicación del Asistente para aplicaciones Win32, en Opciones adicionales, desactive la casilla Encabezado precompilado.

  8. Haga clic en Finalizar para crear el proyecto.

Para utilizar la funcionalidad de la biblioteca estática en la aplicación de consola

  1. Después de crear una nueva aplicación de consola, el asistente crea un programa vacío. El nombre del archivo de código fuente será el mismo que el elegido para el proyecto anterior. En este ejemplo, se llama MyExecRefsLib.cpp.

  2. Para utilizar las rutinas matemáticas que se crearon en la biblioteca estática, 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 Marco de trabajo y referencias, Propiedades comunes, Páginas de propiedades de <nombreDeProyecto> (Cuadro de diálogo).

  3. Aparece el cuadro de diálogo Agregar referencia. Este cuadro de diálogo muestra todas las bibliotecas a las que puede hacer referencia. La ficha Proyecto enumera todos los proyectos de la solución actual y las bibliotecas que contienen. En la ficha Proyectos, seleccione MathFuncsLib. Seleccione Aceptar. Para obtener más información sobre el cuadro de diálogo Agregar referencias, vea Agregar referencia (Cuadro de diálogo).

  4. Para hacer referencia a los archivos de encabezado de la biblioteca estática, debe modificar la ruta de acceso de los directorios de inclusión. Para ello, en el cuadro de diálogo Páginas de propiedades, expanda el nodo Propiedades de configuración, a continuación el nodo C/C++ y seleccione General. Junto a Directorios de inclusión adicionales, escriba la ruta de acceso a la ubicación del archivo de encabezado MathFuncsLib.h.

  5. Ahora puede utilizar la clase MyMathFuncs en esta aplicación. Reemplace el contenido de MyExecRefsLib.cpp por el código siguiente:

    // MyExecRefsLib.cpp
    // compile with: /EHsc /link MathFuncsLib.lib
    
    #include <iostream>
    
    #include "MathFuncsLib.h"
    
    using namespace std;
    
    int main()
    {
        double a = 7.4;
        int b = 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;
    
        return 0;
    }
    
  6. Genere el ejecutable seleccionando Generar solución en el menú Generar.

Para ejecutar la aplicación

  1. Asegúrese de que MyExecRefsLib está seleccionado como proyecto predeterminado. En el Explorador de soluciones, seleccione MyExecRefsLib 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 debería ser similar a lo siguiente:

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft