Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > DLL и диалог


Автор: DubAlex 28.4.2006, 09:38
Есть проект, в результате компилирования которого формируется DLL. В ней размещаю диалог: в проект добавляю файл ресурсов (Project->Add to project->New->Resource Script), создаю ресурс диалога (Insert->Dialog), вызываю classWizard (Ctrl+W), далее в качестве источника указываю файл с расширением rc, создаю новый класс. 
Вроде бы все правильно. Но когда пытаюсь вызвать его с помощью функции DoModal() вылетает окно с сообщением "Debug Assertion Failed" и указывается файл afxwin1.inl строка 22. Если использовать трассировку, то после входа в функцию DoModal() и при выполнении строки:
   HINSTANCE hInst = AfxGetResourceHandle();
появляется данное сообщение.
Прошу подсказать, как с этим можно справиться? 

Автор: OverBug 28.4.2006, 22:10
Попробуй перед DoModal() загрузить ресурс, там функция тпа LoadResource апишная есть... 

Автор: DubAlex 2.5.2006, 08:39
Цитата(OverBug @ 28.4.2006,  22:10)
Попробуй перед DoModal() загрузить ресурс, там функция тпа LoadResource апишная есть...

Я пробовал использовать 
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
но результат прежний. И вообще, при трассировке эта строчка игнорируется, просто перескакиваем через нее и все. 
В MSDN говорится, что AFX_MANAGE_STATE нужно использовать для экспортируемых функции( если я правильно понял). У меня таких функций нет. Может из-за этого строка 
AFX_MANAGE_STATE(AfxGetStaticModuleState( )) 
игнорируется при трассировке? 

Автор: OverBug 2.5.2006, 19:10
Цитата

У меня таких функций нет

Тогда зачем использовать AFX_MANAGE_STATE(AfxGetStaticModuleState( )) ????? 

Я попробовал создать такую DLL. Все работает и не вываливается. 
Код

BOOL Cdll_dialogApp::InitInstance()
{
    CWinApp::InitInstance();
    CMyDialog mdlg;
    mdlg.DoModal();

    return TRUE;
}



class CMyDialog : public CDialog  создал визардом.

При загрузке DLL (LoadLibrary(...)) появляется мой диалог.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)