DLL中的AFX_MANAGE_STATE(AfxGetStaticModuleState())导致EXE无法退出?

时间:2017-01-31 02:04:43

标签: c++ mfc

我有一个由DLL和Windows控制台应用程序.exe。

组成的项目

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

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

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

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

为什么会这样?

1 个答案:

答案 0 :(得分:0)

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