DLL的DllMain入口函数

时间:2022-01-22 19:49:22

关于DllMain入口函数,我也是刚刚接触,大概的认识如下:

DllMain入口函数是DLL不可缺少,虽然一般我们可能没有定义这个入口函数,但是系统会从其运行库中引入一个不进行任何操作的缺省DllMain入口函数。这个入口函数被调用的情况有四种,dll的加载和卸载,还有单个线程的启动或终止。大概就是这么个意思吧。如果需要仔细的说明,可以参考msdn给出的详细说明,链接如下:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx

如果不明白的话,可以往自己的dll里面加入下面这个函数。那么就清楚了。如果还不知道简单的dll创建的话,可以参考http://blog.csdn.net/betabin/article/details/7239200.

bool WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
printf("\nprocess attach of dll");
//dllGlobalVar = 100;
break;
case DLL_THREAD_ATTACH:
printf("\nthread attach of dll");
break;
case DLL_THREAD_DETACH:
printf("\nthread detach of dll");
break;
case DLL_PROCESS_DETACH:
printf("\nprocess detach of dll");
break;
}
return true;
}