第一种方式,手动找到函数地址,进行调用。
LoadLibrary();
GetProcAddress();
生成dll库
#include<Windows.h>
//导出函数,可以加载的时候调用
_declspec(dllexport) void msg()
{
MessageBoxA(0, "1", "2", 0);
}
//导出函数,可以加载的时候调用
_declspec(dllexport) int add(int a, int b)
{
return a + b;
}调用dll库
#include<Windows.h>
#include<stdlib.h>
#include<stdio.h>
typedef void(*procA)();
typedef int (*procB)(int a,int b);
void main()
{
HMODULE hdll = LoadLibrary("DLL.dll"); //加载dll
if (hdll != NULL)
{
procB proc1 = (procB*)GetProcAddress(hdll, "add");
if (proc1 != NULL)
{
printf("%d", proc1(4, 8));
}
FARPROC proc = GetProcAddress(hdll, "msg");
if (proc != NULL)
{
proc();
}
}
return 0;
}
第二种方式,利用开发环境的编译器,帮助我们实现。

本文介绍两种创建和调用DLL库的方法:一是通过手动加载函数地址并调用;二是借助开发环境编译器自动完成。具体展示了如何使用C++代码实现函数的导出与导入,包括加法运算及消息框显示。

被折叠的 条评论
为什么被折叠?



