您的位置:首页 > 其它

VS2013 中生成lib和dll库文件

2016-08-17 18:06 211 查看
转载出处:http://blog.csdn.net/renyhui/article/details/21282073

①新建项目-->win32-->win32项目-->输入项目名为DllTest-->选择Dll-->选择空项目-->完成



②添加头文件和源文件并命名为DllTest.h和DllTest.cpp(方法:分别在头文件和源文件  :右键---添加---新建项)



③头文件和源文件的定义(这里我们只实现加法运算)

// DllTest.h

[cpp] view
plain copy

 





#ifdef DLL_API  

#else  

#define DLL_API __declspec(dllexport)  

#endif  

// 声明要导出的函数  

DLL_API int add(int a, int b);  

// DllTest.vpp

[cpp] view
plain copy

 





#define DLL_API __declspec(dllexport)  

  

#include "DllTest.h"  

  

int add(int a, int b)  

{  

    return a + b;  

}  

④我们编译运行一下,因为不是完整的文件,这里会报错,不过没关系,这是我们找到文件存放的位置,会发现DeBug文件中会包含

这些生成的文件,这里我们只关心.dll和.lib文件。在Debug同级目录下,在DllTest文件中,会找到DllTest.h文件

.dll文件即使动态链接库,.lib文件是程序开发用的导入库,.h文件包含导出函数的声明

⑤我们再新建一个项目,命名为TestForDll,选择win32 控制台应用程序

⑥将我们④中的三个文件存放到TestForDll目录下的TestForDll文件中



如果我们直接存放在TestForDll文件中会出现    error C1083: 无法打开包括文件: “DllTest.h”

如果我们这时只把DllTest.h放进去的话会出现错误:error LNK1104: 无法打开文件“DllTest.lib”

这时再把.lib文件放入TestForDll目录下的TestForDll文件中,就可以正常的编译运行

使用#pragma comment(lib,"DllTest")命令链接到DllTest.lib库。当然我们也可以使用项目---属性---配置属性----链接器---输入-----附加依赖项中添加DllTest.lib



这里给出main函数的实现

[cpp] view
plain copy

 





#include <stdio.h>  

#include "DllTest.h"  

  

#pragma comment(lib,"DllTest.lib")  

  

int main()  

{  

    int a = 3;  

    int b = 2;  

    printf("a+b=%d\n", add(a,b));  

    return 0;  

}  

备注:如果我们把没把.dll文件放在debug目录下,当关闭程序,重新启动的时候,会出现找不到.dll文件的错误

因此我们最好要把.dll文件放在debug目录下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: