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的人需要在项目属性中设置链接器、库目录、包含目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值