使用vs2010生成和使用动态库和静态库
2015-07-08 10:06
309 查看
动态库:
包含.dll、.lib、.h三个文件,动态链接库是一个可执行的模块,不能单独运行,需要应用程序调用才能使用,通常封装了函数的集合,仅在程序运行的时候才去查。.lib文件提供调用函数的位置信息,.dll是原函数代码,使用的时候必须包含以上三个文件。
静态库:
包含.lib、.h文件,了、连接器从静态库LIB中获取被引用的函数,并将代码一起放到可执行文件中,使用时将以上两个文件考入当前文件的lib文件夹中。
二、生成静态可动态库
文件——新建——项目——控制台程序
![](https://img-blog.csdn.net/20150708100850747?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
下一步中选择DLL后完成
![](https://img-blog.csdn.net/20150708100935026?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
完成后新建一个.h和.cpp文件,
![](https://img-blog.csdn.net/20150708101037523?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
LibTest内容和LibTest.cpp内容
![](https://img-blog.csdn.net/20150708101137238?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150708101143779?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
完成后按F7进行编译在文件件中出现.dll文件。静态库编译同上
如果遇到如下问题
![](https://img-blog.csdn.net/20150708101248604?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
将进行如下嵌入清单改成是即可
![](https://img-blog.csdn.net/20150708101307894?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150708101342583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、完成生成后进行验证
新建一个testlib项目
#include "stdafx.h"
#include "LibTest.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CTest dt;
int res=dt.sum(1,2);
cout<<"res:"<<res<<endl;
system("pause");
return 0;
}
然后进行属性设置连接将LibTest.lib写入
![](https://img-blog.csdn.net/20150708101420140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果是静态连接需考入.lib、.h文件到当前程序文件夹lib文件夹中,若动态连接则需要考入.dll、.lib、.h三个文件到lib中,编译即可
包含.dll、.lib、.h三个文件,动态链接库是一个可执行的模块,不能单独运行,需要应用程序调用才能使用,通常封装了函数的集合,仅在程序运行的时候才去查。.lib文件提供调用函数的位置信息,.dll是原函数代码,使用的时候必须包含以上三个文件。
静态库:
包含.lib、.h文件,了、连接器从静态库LIB中获取被引用的函数,并将代码一起放到可执行文件中,使用时将以上两个文件考入当前文件的lib文件夹中。
二、生成静态可动态库
文件——新建——项目——控制台程序
下一步中选择DLL后完成
完成后新建一个.h和.cpp文件,
LibTest内容和LibTest.cpp内容
完成后按F7进行编译在文件件中出现.dll文件。静态库编译同上
如果遇到如下问题
将进行如下嵌入清单改成是即可
二、完成生成后进行验证
新建一个testlib项目
#include "stdafx.h"
#include "LibTest.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CTest dt;
int res=dt.sum(1,2);
cout<<"res:"<<res<<endl;
system("pause");
return 0;
}
然后进行属性设置连接将LibTest.lib写入
如果是静态连接需考入.lib、.h文件到当前程序文件夹lib文件夹中,若动态连接则需要考入.dll、.lib、.h三个文件到lib中,编译即可
相关文章推荐
- fork() 、vfork()、clone()
- leetcode解题报告233——Power of Two
- STL----空间配置器
- WCF - Creating WCF Service
- NSDictionary、NSMutableDictionary的基本用法
- 2015年最有价值的30个响应式WORDPRESS主题
- Solution 20: 字符串转整数问题
- TCP中的MSS解读(转)
- 贾扬清:希望Caffe成为深度学习领域的Hadoop
- Apache日志的一些操作命令技巧
- 一个PHP实现的轻量级简单爬虫
- 线性布局匹配全屏竟然不管用
- Serializable:serialVersionUID
- PostgreSQL中的SQL语句示例
- AF_INET与套接字
- Volley动态获取图片
- 资产负债率
- Unity扩展方法
- Ubuntu 14.04 Android 使用Maven一个 用例project
- linux系统下file使用的magic文件格式说明