C++项目生成dll并调用

项目生成DLL以及调用外部DLL

  • 环境:VS2022
  • 语言:C++

1 创建VS项目生成DLL文件

  • 按照一般步骤创建一个VS项目,如下所示的test01项目。
    在这里插入图片描述

  • 创建myDLL类

动态链接库导出的类需要加关键字__declspec(dllexport),否则无法生成lib文件。

myDLL.h:

#pragma once
class __declspec(dllexport)myDLL
{
    
    
public:
    static void showTest();//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>
int main()
{
    
    
    myDLL::showTest();//需加作用域myDLL
    std::cout << "this is test02" << std::endl;
    return 0;
}
  • 将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的人需要在项目属性中设置链接器、库目录、包含目录

猜你喜欢

转载自blog.csdn.net/qq_40833391/article/details/128000638
今日推荐