У меня есть проект, который состоит из библиотеки DLL и приложения Windows .exe.AFX_MANAGE_STATE (AfxGetStaticModuleState()) в DLL заставляет EXE не выходить?
.exe вызывает DLL. В DLL я создаю диалоговое окно.
AFX_MANAGE_STATE(AfxGetStaticModuleState());
MyDlg* dlg = new MyDlg;
dlg->Create(IDD_DIALOG1);
мне пришлось добавить AFX_MANAGE_STATE (AfxGetStaticModuleState()), так что знал, что искать в DLL для ресурсов. Однако это, похоже, вызывает проблему, когда управление возвращается в EXE.
Когда я возвращаю 0 "в функции main() EXE, окно консоли не исчезает. Я должен физически закрыть его, чтобы EXE перестала работать. Если я удалю AFX_MANAGE_STATE (AfxGetStaticModuleState()) из DLL (вместе со всеми ссылками на MyDlg, так как они не будут работать без него), все отлично работает, когда управление передается обратно в EXE.
Зачем это происходит?
Подключите отладчик и посмотрите, что мешает процессу выйти из системы. –
Исправлено. В моей DLL используется DAO. Мне пришлось добавить AfxDaoTerm(); перед выходом. Спасибо. –
Пожалуйста, разместите это как ответ, чтобы другие с той же проблемой знали, как это исправить. –