两个创建无模式对话框的dll调用正常,卸载时,卸载第一个dll将第二个dll中的对话框窗体也卸载了??

wml231 2008-06-05 03:04:08
我在两个dll中分别创建无模式对话框并调用正常,卸载时,卸载第一个dll时,Destroywindow后,将第二个dll中的对话框窗体也卸载了,即第二个窗体的句柄为0,我跟踪调试看了下,如果把对话框的属性该为child而不用popup,则第二个能正常卸载,当然,调用两个dll是在同一应用程序中(dephi的程序),但是,我需要我的dll中对话框处理消息,所以不能用child属性,否则接受不到消息
这个问题已经困惑了很多天,请高手们指点,谢谢
给出卸载函数中的代码:

if(test->m_hWnd != NULL )//test为无模式对话框指针
{
test->CloseWindow();
test->DestroyWindow();
delete test;
test=NULL;
}
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonewater 2008-06-11
  • 打赏
  • 举报
回复
是在哪里做的卸载
多贴些代码,关于加载和卸载的,
看看DllMain中的代码呢
wml231 2008-06-11
  • 打赏
  • 举报
回复
dddd
wml231 2008-06-10
  • 打赏
  • 举报
回复
ding
jiqing_gao 2008-06-05
  • 打赏
  • 举报
回复
gz
wml231 2008-06-05
  • 打赏
  • 举报
回复
加载函数相同
AFX_MANAGE_STATE(AfxGetStaticModuleState());

if(test != NULL)//test是全局指针
{
test->Create(IDD_RFIDDOOR,NULL);
test->ShowWindow(SW_SHOW);
}
很正常的加载,没有特别之处
cnzdgs 2008-06-05
  • 打赏
  • 举报
回复
两个DLL分别是怎么加载的?两个对话框分别是怎么创建的?

15,471

社区成员

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

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