zoukankan      html  css  js  c++  java
  • VC 静态库与动态库(二)静态库创建与使用

    1.新建项目,创建项目和解决方案

    StaticLibrary  这是静态库项目

    G:C++LearnLibrary  Library文件夹用于存放库相关文件,包含静态库与后面的动态库工程和解决方案

    StaticLibraryDemo  静态库解决方案名称

     2.点击下一步,出现如下界面

    选择静态库,选择预编译头,如果需要使用MFC就勾选上,最后点击完成

     3.然后VS左边解决方案管理器会显示相关文件

    这就是个最简单的静态库,编译生成下

    4.文件夹生成了相关文件

    解决方案目录:

    解决方案目录下,项目文件夹StaticLibrary,Debug解决方案调试目录下面就存放了编译生成的.lib静态库

     

    5. 给静态库项目添加一个c++类CMyMath供外部程序使用

    然后分别添加二个函数,一个成员函数MathAdd 用于加法计算,一个全局函数MathSub 用于减法计算,最后编译生成

    6. 给解决方案添加一个新的控制台项目用于测试静态库,创建完成后设置为启动项目

    7. Test.CPP中添加相关代码

     1 // Test.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include "../StaticLibrary/MyMath.h"  //静态库CMyMath头文件
     6 
     7 #pragma comment(lib,"../Debug/StaticLibrary.lib") //引入静态库.lib文件
     8 int _tmain(int argc, _TCHAR* argv[])
     9 {
    10     //使用静态库中CMyMath类,调用其中的MathAdd方法
    11     CMyMath myMath;
    12     int nResult = myMath.MathAdd(1,2);
    13     printf("1 + 2 = %d
    ",nResult);
    14     //调用静态库中的全局函数MathSub
    15     nResult = MathSub(5,1);
    16     printf("5 - 1 = %d
    ",nResult);
    17     getchar();
    18     return 0;
    19 }

    8. 编译运行Test, 查看相关信息.

    控制台输出调试信息,下方的模快里只有Test.exe以及系统dll,静态库中所有代码都被打包加到Test.exe中去

    了,与动态库相比静态库最明显区别就是不需要加载dll

    总结:

    注意:当静态库代码进行修改后,Test项目也需要重新编译生成

    小技巧:当需要使用多个库的时候,可以在解决方案目录下新建个library文件夹用于存放多个库的文件,整个项目组织结构更加清晰,方便引入库

  • 相关阅读:
    Cocos2d-x 2.x项目创建
    Mac OS 使用Git
    Android Studio And Gradle
    Mac OS环境变量配置(Android Studio之Gradle)
    【Android UI】 Shape详解
    JS-OC通信之Cordova简介
    python类的定义和使用
    Android屏幕适配常识
    Python面试315题
    第十五篇 Python之文件处理
  • 原文地址:https://www.cnblogs.com/fzxiaoyi/p/12052921.html
Copyright © 2011-2022 走看看