• VC win32 static library静态链接库简单示例


           中午在宿舍闲来没事,看到网上一篇帖子,关于静态链接库的英文示例。它在.Net上开发,我将其移到VC上开发,因此对其代码做了相应修改。帖子内容如下:(代码我已修改)。原帖见:http://msdn.microsoft.com/en-us/library/ms235627
         
    The next type of library we will create is a static library (LIB). Using static libraries is a great way to reuse code. Rather than re-implementing the same routines in every program that you create, you write them one time and reference them from applications that need the functionality.
    This walkthrough covers the following:
    Creating a new static library project.
    Adding a class to the static library.
    Creating an application that references the static library.
    Using the functionality from the static library in the console application.
    Running the application.
    Prerequisites
    This topic assumes that you understand the fundamentals of the C++ language. If you are just getting started learning C++, we recommend the "C++ Beginner's Guide," written by Herb Schildt, available online at http://go.microsoft.com/fwlink/?LinkId=115303.
    To create a new static library project
    From the File menu, select New and then Project….
    On the Project types pane, under Visual C++, select Win32.
    On the Templates pane, select Win32 Console Application.
    Choose a name for the project, such as MathFuncsLib, and enter it in the Name field. Choose a name for the solution, such as StaticLibrary, and enter it in the Solution Name field.
    Press OK to start the Win32 application wizard. On the Overview page of the Win32 Application Wizard dialog box, press Next.
    On the Application Settings page of the Win32 Application Wizard, under Application type, select Static library.
    On the Application Settings page of the Win32 Application Wizard, under Additional options, clear the Precompiled header check box.
    Press Finish to create the project.
    To add a class to the static library
    To create a header file for a new class, from the Project menu, select Add New Item…. The Add New Item dialog box will be displayed. From the Categories pane, under Visual C++, select Code. From the Templates pane, select Header File (.h). Choose a name for the header file, such as MathFuncsLib.h, and press Add. A blank file will be displayed.
    Add a simple class named MyMathFuncs to do common mathematical operations, such as addition, subtraction, multiplication, and division. The code should resemble the following:
    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);
    };
    To create a source file for a new class, from the Project menu, select Add New Item…. The Add New Item dialog box will be displayed. From the Categories pane, under Visual C++, select Code. From the Templates pane, select C++ File (.cpp). Choose a name for the source file, such as MathFuncsLib.cpp, and press Add. A blank file will be displayed.
    Implement the functionality for MyMathFuncs in the source file. The code should resemble the following:
    // MathFuncsLib.cpp
    // compile with: /c /EHsc
    // post-build command: lib MathFuncsLib.obj


    #include "MathFuncsLib.h"
    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)
    {
        return a / b;
    }
    To build the project into a static library, from the Project menu, select MathFuncsLibProperties…. On the left pane, under Configuration Properties, select General. On the right pane, change the Configuration Type to Static Library (.lib). Press OK to save the changes.
    NoteNote
    When you build from the command line, you must build the program in two steps. First, compile the code by using Cl.exe with the /c compiler option (cl /c /EHsc MathFuncsLib.cpp). This will create an object file that is named MathFuncsLib.obj. For more information, see /c (Compile Without Linking). Second, link the code by using the Library Manager Lib.exe (lib MathFuncsLib.obj). This will create the static library MathFuncsLib.lib. For more information about the Library Manager, see LIB Reference.
    Compile the static library by selecting Build Solution from the Build menu. This creates a static library that can be used by other programs.
    To create an application that references the static library
    To create an application that will reference and use the static library that was just created, from the File menu, select New and then Project….
    On the Project types pane, under Visual C++, select Win32.
    On the Templates pane, select Win32 Console Application.
    Choose a name for the project, such as MyExecRefsLib, and type it in the Name field. Next to Solution, select Add to Solution from the drop down list. This will add the new project to the same solution as the static library.
    Press OK to start the Win32 Application Wizard. On the Overview page of the Win32 Application Wizard dialog box, press Next.
    on the Application Settings page of the Win32 Application Wizard, under Application type, select Console application.
    On the Application Settings page of the Win32 Application Wizard, under Additional options, clear Precompiled header.
    Press Finish to create the project.
    To use the functionality from the static library in the console application
    After you create a new console application, the wizard creates an empty program for you. The name for the source file will be the same as the name that you chose for the project earlier. In this example, it is named MyExecRefsLib.cpp.
    To use the math routines that you created in the static library, you must reference it. To do this, select References… from the Project menu. From the Property Pages dialog box, expand the Common Properties node and select References. Then select the Add New Reference… button. For more information about the References… dialog box, see Framework and References, Common Properties, <Projectname> Property Pages Dialog Box.
    The Add Reference dialog box is displayed. This dialog box lists all the libraries that you can reference. The Project tab lists all the projects in the current solution and any libraries they contain. On the Projects tab, select MathFuncsLib. Then select OK.
    To reference the header files of the static library, you must modify the include directories path. To do this, in the Property Pages dialog box, expand the Configuration Properties node, expand the C/C++ node, and then select General. Next to Additional Include Directories, type the path of the location of the MathFuncsLib.h header file.
    You can now use the MyMathFuncs class in this application. Replace the contents of MyExecRefsLib.cpp with the following code:
    // MyExecRefsLib.cpp
    // compile with: /EHsc /link MathFuncsLib.lib
    #include <stdio.h>
    #include <iostream>
    #include "..MathFuncsLib.h"
    #pragma comment( lib, "..\debug\MathFuncsLib.lib" )//指定与静态库一起连接
    using namespace std;


    int main()
    {
        double a = 7.4;
        int b = 99;


        cout << "a + b = " <<MyMathFuncs::Add(a, b) << endl;
        cout << "a - b = " <<MyMathFuncs::Subtract(a, b) << endl;
        cout << "a * b = " <<MyMathFuncs::Multiply(a, b) << endl;
        cout << "a / b = " <<MyMathFuncs::Divide(a, b) << endl;


        return 0;
    }
    Build the executable by selecting Build Solution from the Build menu.
    To run the application
    Make sure MyExecRefsLib is selected as the default project. In the Solution Explorer, select MyExecRefsLib, and then select Set As StartUp Project from the Project menu.
    To run the project, select Start Without Debugging from the Debug menu. The output should resemble this
  • 相关阅读:
    HTML5 API分享
    承接VR外包,虚拟现实外包,北京正规公司
    虚拟现实外包—动点飞扬软件专门承接VR/AR场景、游戏、项目外包
    Unity3d外包—就找北京动点软件(长年承接Unity3d软件、游戏项目外包)
    Kinect外包团队— 2016中国VR开发者论坛第一期
    Kinect外包-就找北京动点飞扬软件(长年承接微软Kinect体感项目外包,有大型Kinect案例)
    Win10外包公司(长年承接Win10App外包、Win10通用应用外包)
    HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析
    HTML5外包团队:HTML5 Canvas使用教程
    libgo 2.0发布
  • 原文地址:https://www.cnblogs.com/itblog/p/7236599.html
Copyright © 2020-2023  润新知