A1. В вопросе приводился пример функции, с помощью которого предполагалось вызвать диалог. В MSDN я нашёл статью TN058, рассказывающую о том, как реализовано управление модулями в MFC.

Для того, чтобы получить доступ к любому объекту MFC из экспортируемой функции, необходимо в самом начале функции поставить AFX_MANAGE_STATE(AfxGetStaticModuleState) ;

Таким образом, будут корректно реализована связь дескрипторов (HANDLE) с объектами MFC и , в частности, ресурсы, хранимые в DLL будут корректно задействованы:

declspec(dllexport)

int MyDllFunction {

 AFX_MANAGE_STATE(AfxGetStaticModuleState);

 CDialog dlg(IDD_TESTDLG);

 return dlg.DoModal;

}

Алексей Селезнев
Перейти на страницу:

Похожие книги