DLL 中的 AFX_MANAGE_STATE(AfxGetStaticModuleState()) 会导致 EXE 不

AFX_MANAGE_STATE(AfxGetStaticModuleState()) in DLL causes EXE to not exit?

本文关键字:EXE 中的 MANAGE STATE DLL AfxGetStaticModuleState AFX      更新时间:2023-10-16

我有一个由DLL和Windows控制台应用程序.exe组成的项目。

.exe调用 DLL。在 DLL 中,我正在创建一个对话框。

AFX_MANAGE_STATE(AfxGetStaticModuleState());
MyDlg* dlg = new MyDlg;
dlg->Create(IDD_DIALOG1);

我必须添加AFX_MANAGE_STATE(AfxGetStaticModuleState()),以便它知道在DLL中查找资源。但是,当控制权返回到 EXE 时,这似乎会导致问题。

当我在 EXE 的 main() 函数中"返回 0"时,控制台窗口不会消失。我必须物理关闭它才能使 EXE 停止运行。如果我从 DLL 中删除AFX_MANAGE_STATE(AfxGetStaticModuleState())(以及对 MyDlg 的所有引用,因为它们没有它就无法工作),当控制权传递回 EXE 时,一切正常。

为什么会这样?

固定。我的 DLL 正在使用 DAO。我不得不添加 AfxDaoTerm();在退出之前。谢谢