如何在C++程序中调用dll文件

mobile3656 ⌚ 2025-07-04 17:02:54 👤 admin 👁️ 5824 ❤️ 873
如何在C++程序中调用dll文件

前言:首先做一些基础操作,新建一个dll文件

1.先新建项目–>win 32项目(比如命名为testDLL)–>dll(选中空项目)–>完成。 2.新建一个文件,命名为Add.cpp,完成如下代码:

#define DLLEXPORT extern "C" __declspec(dllexport)

DLLEXPORT int sum(int a, int b)

{

return a + b;

}

3.新建一个头文件

int sun(int,int);

1.动态调用dll库

1.1新建一个控制台程序-> 空项目

1.2添加cpp和dll文件进入工程或者在工程属性->VC++目录->添加dll文件的目录(大概是哪个都行)

1.3工程属性->常规->字符集->使用多字节字符集

1.4 在cpp文件中写入demo

#include

#include

/*

Windows头文件中包含可以加载DLL的函数。

*/

typedef int(*ptrSub)(int, int);

/*

在调用DLL函数之前,要定义函数指针,用来调用函数。

可以看出,函数指针的类型与DLL中的要一致。

*/

HMODULE hMod = LoadLibrary("testDLL.dll");

/*

调用LoadLibrary函数加载DLL文件。加载成功,hMod指针不为空。

这里也可以是一个地址加文件名

*/

int main()

{

if (hMod != NULL)

{

/*

如果加载成功,则可通过GetProcAddress函数获取DLL中需要调用的函数的地址。

获取成功,sum指针不为空。

*/

ptrSub sum = (ptrSub)GetProcAddress(hMod, "sum");

if (sum != NULL)

{

std::cout << "10 + 6 = " << sum(10, 6) << std::endl;

/*获取地址成功后,通过sum调用函数功能。*/

}

FreeLibrary(hMod);

/*在完成调用功能后,不在需要DLL支持,则可以通过FreeLibrary函数释放DLL。*/

}

}

相关数据

2022年卡塔尔世界杯:巴西4-1战胜韩国的经典战役解析与反思

2022年卡塔尔世界杯:巴西4-1战胜韩国的经典战役解析与反思

导言:在2022年卡塔尔世界杯的舞台上,巴西与韩国的对抗成了一场值得铭记的经典战役。无论是巴西队的华丽进攻技巧,还是韩国队的韧性防守

07-03 天天365彩票软件官方下载3D
《方舟生存进化》跨平台怎么联机 跨平台联机方法

《方舟生存进化》跨平台怎么联机 跨平台联机方法

导 读 方舟生存进化跨平台联机教程 方舟生存进化如何跨平台联机?当EPIC版本推出并免费领取后,如何与Steam版玩家一起联机就成为许家必须要掌

06-30 mobile3656
王者荣耀女娲蛇年限定皮肤怎么买最划算 女娲愿照千秋盛蛇年皮肤价格攻略

王者荣耀女娲蛇年限定皮肤怎么买最划算 女娲愿照千秋盛蛇年皮肤价格攻略

王者荣耀女娲蛇年限定皮肤愿照千秋盛原价为1788点券,不购买蛇年新春好运卡的首周价格是1430点券,购买后的皮肤价格为590点券,一起来看看

07-02 电视直播网365
剑网三:名剑大会 游戏地图(一)

剑网三:名剑大会 游戏地图(一)

《剑网三》名剑大会地图是游戏中非常重要的一个地图,也是众多玩家热衷的挑战之一。该地图拥有丰富的游戏资源,提供了多种副本和任务,

07-03 电视直播网365
卡塔尔世界杯上的“中国阵容” 长沙为何稳占一席?

卡塔尔世界杯上的“中国阵容” 长沙为何稳占一席?

北京时间11月21日零时,2022年卡塔尔世界杯正式打响,网红长沙的表现又“亮”了! 据说,为了让不睡觉的长沙人享受这一全人类最关注的赛事,网红

06-27 天天365彩票软件官方下载3D
《空洞骑士》地图商人详细位置一览 全地图商人位置

《空洞骑士》地图商人详细位置一览 全地图商人位置

空洞骑士是一款2D动作探险游戏,玩家需要不停的战斗提升自己以面对更强大的敌人,空洞骑士中有很多地图商人,那么这些地图商人在哪呢,

07-04 天天365彩票软件官方下载3D