C语言学习day24:DLL函数导出详情
简言
上一章我们知道了DLL函数的结构,但是要做到应用软件直接用我们的DLL,那就需要做到一件事情:导出
导出
比如说我们写一个这样的代码:
#include "pch.h"
void test() {
};
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
test();
return TRUE;
}
我们可以看见test函数现在只是一个普普通通的函数,想要导出test函数,就需要在它的前面加一个前缀:extern "C" __declspec(dllexport)
extern "C" __declspec(dllexport) void test() {
};
这就是声明。
完整代码
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
extern "C" __declspec(dllexport) void test() {
HWND hWnd = FindWindowA(NULL, "代码注入器");
SetWindowTextA(hWnd,"修改-代码注入器");
};
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
test();
return TRUE;
}
生成
接下来我们生成一下
导出
打开我们的StudyPE(PE工具),将DLL拖入至工具中:
结语
这一章节就结束了,我们一步步来,慢慢梳理我们汲取到的知识,下一章节我们学习如何去将导出的补丁(DLL)打入至软件里面。