關於dll使用的方法,留個備份,總是好事
dll 代碼:
// compile :cl /LD *.c
#include <windows.h>
#pragma comment(lib, "user32")
__declspec(dllexport) void func()
{
MessageBox(0, "dll func execute", "dll func", MB_OK);
}
BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD fdwReason, PVOID fImpLoad)
{
switch(fdwReason)
{
/*
#define DLL_PROCESS_ATTACH 1
#define DLL_THREAD_ATTACH 2
#define DLL_THREAD_DETACH 3
#define DLL_PROCESS_DETACH 0
*/
case DLL_PROCESS_ATTACH:
{
MessageBox(0, "DLL_PROCESS_ATTACH", "load dll", 0);
break;
}
// 注意break
case DLL_PROCESS_DETACH:
{
MessageBox(0, "DLL_PROCESS_DETACH", "detach dll", 0);
func();
break;
}
default:
{
break;
}
}
return TRUE;
}
調用代碼:
// #include "libname.h" // 貌似可以不要
#pragma comment(lib,"libname")
int main(int argc, char *argv[])
{
HANDLE hLibTest = LoadLibrary("libname");
func(); // lib 定義
FreeLibrary(hLibTest);
return 0;
}