项目生成DLL以及调用外部DLL
- 环境:VS2022
- 语言:C++
1 创建VS项目生成DLL文件
- 按照一般步骤创建一个VS项目,如下所示的test01项目。
- 创建myDLL类
动态链接库导出的类需要加关键字
__declspec(dllexport)
,否则无法生成lib文件。
myDLL.h:
#pragmaonceclass__declspec(dllexport)myDLL
{public:staticvoidshowTest();//static函数,保证外部能直接调用,无需实例化对象};
myDLL.cpp
#include"myDLL.h"#include<iostream>void myDLL::showTest(){
std::cout <<"myDLL showTest"<< std::endl;}
- 设置项目输出属性:
配置属性–》常规–》配置类型:动态库
点击重新生成:
- 找到生成的DLL文件和LIB文件:(一般在项目的x64/Debug文件夹下面)
- 此时,有三个文件是我们需要提供出来给其他项目的:- test01.dll- test01.lib- myDLL.h
2 在另一个项目中调用以上生成的DLL
- 新建VS项目test02:
添加源文件main.cpp,
#include"myDLL.h"#include<iostream>intmain(){
myDLL::showTest();//需加作用域myDLL
std::cout <<"this is test02"<< std::endl;return0;}
- 将myDLL.h拷贝至test02项目的include文件夹下,test01.lib拷贝至lib文件夹下:(没有就新建)
- 项目属性VC++目录修改以下属性:- 包含目录添加include目录- 库目录添加lib目录
- 编译项目出现以下问题:
点击项目属性–》链接器–》输入–》附加依赖项
- 点击生成,成功
- 运行:无法打开dll
- 将test01.dll添加到x64/Debug下即可
- 运行成功
3 总结
- 项目输出DLL需要在类前面关键字
__declspec(exportdll)
,并在项目属性中设置配置类型为dll; - 得到的dll和lib文件在debug文件夹下;
- 其他项目调用时需要包含相应的头文件,所以制作dll的人需要上传dll、 lib、 .h三种文件;
- 在项目属性中设置配置类型为dll;
- 得到的dll和lib文件在debug文件夹下;
- 其他项目调用时需要包含相应的头文件,所以制作dll的人需要上传dll、 lib、 .h三种文件;
- 调用dll的人需要在项目属性中设置链接器、库目录、包含目录。
标签:
c++
visual studio
本文转载自: https://blog.csdn.net/qq_40833391/article/details/128000638
版权归原作者 十一月的丨肖邦 所有, 如有侵权,请联系我们删除。
版权归原作者 十一月的丨肖邦 所有, 如有侵权,请联系我们删除。