vs2019创建动态库

前提:

1.记住生成的动态库是x64还是x86,必须与使用它的平台相对应

2. extern "C" __declspec(dllexport) void function();

其中extern "C"的作用是告诉编译器将被它修饰的代码按C语言的方式进行编译。
 __declspec(dllexport)需要在生成动态库的项目中使用,此修饰符告诉编译器和链接器被它修饰的函数或类或变量需要从DLL导出,以供其他应用程序使用,否则生成不了lib文件;与其相对的还有一句代码是__declspec(dllimport),给其他项目使用时使用·此修饰符的作用是告诉编译器和链接器被它修饰的函数或变量需要从DLL导入 
最后是函数void function(),它就是需要被其他程序调用的函数。

__declspec(dllexport) 具体功能参考以下链接

https://www.cnblogs.com/lisuyun/p/5484017.html

生成过程

1.创建项目

2.默认生成的文件不管,添加自己的文件add.h和add.cpp,注意cpp文件中必须添加pch.h

3.编译完成后,找到文件dll,lib,.h

4.将.h文件添加到要调用的项目中,同时将dllexport修改为dllimport

5.dll和lib使用跟调用其他三方库一样

1)lib文件配置

方法一:#pragma comment(lib,"path");//path为lib文件的路径,dll文件与项目exe文件放一起

方法二:在项目属性中的链接器中配置

方法三:在属性管理器的全局文件Microsoft.Cpp.x64.user中添加;好处是不依赖项目

2)dll配置

1)拷贝到exe所在文件夹

2)项目属性->配置属性->调试->环境 添加;path=dll文件所在路径;

6.注意事项

1,生成dll必须加入__declspec(dllexport),调用dll必须添加__declspec(dllimport)

2.调用dll的解决方案中,只需要添加包含__declspec(dllexport)的头文件,其他头文件不需要添加

3.动态库调用动态库(假设有三个项目test,dlla,dllb,,test调用动态库dlla,dlla在生成时调用dllb)

dlla调用ddlb时,需要dllb的导出的的.h文件和dllb.lib文件。不需要dllb.dll文件

test调用dlla时,需要dlla.dll和dllb.dll(两个文件都要与test.exe或sln文件放一起),还需要dlla.lib 和dlla导出的的.h文件(即__declspec(dllexport)修饰的.h)

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值