永发信息网

如何添加DllMain函数?

答案:6  悬赏:80  手机版
解决时间 2021-11-13 11:01
如何添加DllMain函数?
最佳答案
1、The DllMain function is an optional method of entry into a dynamic-link library (DLL)。(简要翻译:对于动态链接库,DllMain是一个可选的入口函数。)这句话很重要,很多初学者可能都认为一个动态链接库肯定要有DllMain函数。其实不然,像很多仅仅包含资源信息的DLL是没有DllMain函数的。
2、系统是在什么时候调用DllMain函数的呢?静态链接时,或动态链接时调用LoadLibrary和FreeLibrary都会调用DllMain函数。DllMain的第二个参数fdwReason指明了系统调用Dll的原因,它可能是::DLL_PROCESS_ATTACH、DLL_PROCESS_DETACHDLL_THREAD_ATTAC、
DLL_THREAD_DETACH。
以下从这四种情况来分析系统何时调用了DllMain。
3、DllMain函数是DLL模块的默认入口点。当Windows加载DLL模块时调用这一函数。系统首先调用全局对象的构造函数,然后调用全局函数DLLMain。DLLMain函数不仅在将DLL链接加载到进程时被调用,在DLL模块与进程分离时(以及其它时候)也被调用。
全部回答
构建 MFC 工程
在 源文件
\src\mfc\dllmodule.cpp

打开它,里面有有一个DLLMAIN函数
如果你知道怎么新建工程请往下看。如果不知道就当我没来过

新建一个WIN32的DLL工程
新建一个CPP源文件

添加如下代码

BOOL WINAPI DllMain(
HANDLE hinstDLL,
DWORD dwReason,
LPVOID lpvReserved)
{
return TRUE;
}

就完成了DLLMAIN的编写了
如果你知道怎么新建工程请往下看。如果不知道就当我没来过

新建一个WIN32的DLL工程
新建一个CPP源文件

添加如下代码

BOOL WINAPI DllMain(
HANDLE hinstDLL,
DWORD dwReason,
LPVOID lpvReserved)
{
return TRUE;
}

就完成了DLLMAIN的编写了
DllMain函数是Dll的入口点函数,DllMain函数的原型是BOOL WINAPI DllMain(HISNTANCE hInst, DWORD dwReason, LPVOID);,可在cpp的任何地方来定义这个函数。一般地,对于C\C++程序来说,这个DllMain并不是Dll的真正的入口点,真正的入口点是C\C++运行时库的入口点,C\C++运行时库在进行一些初始化后,才会调用你提供的DllMain函数。如果想让自己的DllMain成为真正的入口点函数,可以在链接选项里,把“入口点”改成DllMain。
DllMain无法重载,你直接在向导生成的DllMain中添加代码就行了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么使用jquery判断一个元素是否含有一个指定
7平米的小卧室怎么设计?求大神答疑解惑,谢
Love Me Like You Do的创作背景
youweartheseonyourfeet的意思
坚果g1可否装其它视频软件
买一头牛要多少钱?一头牛等于多少头猪?
口袋妖怪去过送神火山之后去哪
福城阳光园交通方便吗?应该怎么过去?
亚太2R卫星有免费节目吗?节目叁数多少?谢谢
微博上比较红的les情侣有哪些
用80粒大豆做发芽试验,大豆的发芽率是百分之
隧道测量的变形观测是怎么操作的啊?急……
苯胺和乙酰氯的反应方程式以及现象
51-()<4×9最大能填几
香炒小鱼干的家常做法大全怎么做好吃
推荐资讯
寺湾村地址好找么,我有些事要过去,
途顺二手车中介地址在什么地方,想过去办事,
冰鉴精斑鉴定卡有什么用是干嘛的
微微一笑很倾城14集酒会上肖奈走向孟逸然的背
一个人独食什么意思
数学中倒A这个符号是什么含义
excel怎样用公式判断是否迟到,09:00之前是正
捷安特pp到底多少种怎么分
上海索尔电站设备成套有限公司怎么样?
windows电脑上有wamp环境 也有phpstudy环境
一首很好听的男生英文歌曲,高潮歌词是idont w
什么木本植物(会结果的)8月份开花
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?