0


C++项目生成dll并调用

项目生成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
版权归原作者 十一月的丨肖邦 所有, 如有侵权,请联系我们删除。

“C++项目生成dll并调用”的评论:

还没有评论