码迷,mamicode.com
首页 > 其他好文 > 详细

VC 静态库与动态库(二)静态库创建与使用

时间:2019-12-17 10:37:17      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:图片   argv   入口   math类   修改   方案   turn   简单   相关信息   

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

StaticLibrary  这是静态库项目

G:\C++Learn\Library  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\r\n",nResult);
14     //调用静态库中的全局函数MathSub
15     nResult = MathSub(5,1);
16     printf("5 - 1 = %d\r\n",nResult);
17     getchar();
18     return 0;
19 }

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

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

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

技术图片

 

总结:

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

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

VC 静态库与动态库(二)静态库创建与使用

标签:图片   argv   入口   math类   修改   方案   turn   简单   相关信息   

原文地址:https://www.cnblogs.com/fzxiaoyi/p/12052921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!