关于DLL初始化的问题

askppp 2004-08-29 12:07:58
1、对于MFC DLL,MSDN上说:
MFC 为 PROCESS_ATTACH 和 PROCESS_DETACH 提供了由 _DllMainCRTStartup 调用的 DllMain 函数,因此您不应编写自己的 DllMain 函数。MFC 提供的 DllMain 函数在 DLL 被加载时调用 InitInstance,并在 DLL 被卸载之前调用 ExitInstance。

那对于DLL_THREAD_ATTACH和DLL_THREAD_DETACH是否会调用InitInstance和ExitInstance?

2、对于非MFC DLL,如果我设置一个全局变量为类对象,那这个类对象的构造函数和析构函数是否就相当与MFC DLL里的InitInstance和ExitInstance?是否会处理DLL_THREAD_ATTACH和DLL_THREAD_DETACH?
...全文
169 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyzyx 2004-08-31
  • 打赏
  • 举报
回复
1、不会 InitInstance和 ExitInstance是虚函数
2、不是,不会处理
askppp 2004-08-30
  • 打赏
  • 举报
回复
up
large_small 2004-08-29
  • 打赏
  • 举报
回复
UP
askppp 2004-08-29
  • 打赏
  • 举报
回复
对于问题2,我也知道没有关系,我想知道普通DLL里定义一个类的话和类对象,那他的构造函数和析构函数是否和MFC DLL里的InitInstance和ExitInstance效果一样?


还有一个问题,一个程序调用a.dll,这个程序又创建了个子线程,那该子线程是否会创建a.dll副本?如果创建的话,就说明问题2是效果不同(创建副本就会执行构造函数,而MFC是不会执行InitInstance的),如果不是的话,就说明只是执行DllMain里DLL_THREAD_ATTACH的部分。
footway 2004-08-29
  • 打赏
  • 举报
回复
1、不会。
2、两者之间没有关系。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧