DllMain函数

DllMain 函数是DLL模块的默认 入口点。当Windows加载DLL模块时调用这一 函数。系统首先调用全局对象的 构造函数,然后调用 全局函数DLLMain。DLLMain 函数不仅在将DLL链接加载到进程时被调用,在DLL模块与进程分离时(以及其它时候)也被调用。下面是一个框架DLLMain 函数的例子。
如果我们在DllMain中写入下面的代码(在原来的gan dll.c中添加下面的代码):
BOOL APIENTRY DllMain(HANDLEhModule, DWORD ul_reason_for_call, LPVOIDlpReserved)
{
printf("hModule.%p lpReserved.%p \n", hModule,lpReserved);
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
printf("Process attach. \n");
break;
case DLL_PROCESS_DETACH:
printf("Process detach. \n");
break;
case DLL_THREAD_ATTACH:
printf("Thread attach. \n");
break;
case DLL_THREAD_DETACH:
printf("Thread detach. \n");
break;
}
return (TRUE);
}
同时将 dlltest\dlltest.c修改为:
#include<stdio.h>
#include"dlltest.h"
int main(int argc, char**argv)
{
printf("Simple DLL test start. \n");
printf("Call DLL function: \n");
printf("Test DLL values: %d \n", add2(1, 2));
printf("Call DLL function end. \n");
printf("Simple DLL test end. \n");
return (0);
}
我简单的测试一下输出结果为:
C:\gan dll\dlltest>dlltest
hModule.10000000lpReserved.0012FD30
Process attach.
Simple DLL teststart.
Call DLLfunction:
Test DLL values:3
Call DLL functionend.
Simple DLL testend.
hModule.10000000lpReserved.00000001
Process detach.
也就是说DLL加载和应用程序退出的使用都会调用该 函数(DllMain)的哦,是应用程序一上来就调用的,不是用到该函数时才调用的!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值