提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
首先做一些基础操作,新建一个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);
一、动态调用dll库
1.1新建一个控制台程序-> 空项目
1.2添加cpp和dll文件进入工程或者在工程属性->VC++目录->添加dll文件的目录(大概是哪个都行)
1.3工程属性->常规->字符集->使用多字节字符集
1.4 在cpp文件中写入demo
#include <iostream>
#include <windows.h>
/*
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。*/
}
}
。
版权声明:本文为m0_50302965原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。