Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
AfxSetResourceHandle 27.03.03 03:21 Число просмотров: 1362
Автор: dl <Dmitry Leonov>
|
HINSTANCE hRes = LoadLibrary("Resource.dll");
if(hRes)
AfxSetResourceHandle(hRes);
|
|
<programming>
|
[C++] (MFC) Трабл с CDialog и ресурсами :((( 27.03.03 03:16
Автор: BXS Статус: Незарегистрированный пользователь
|
ТРАБЛ С РЕСУРСАМИ:
Когда CDialog пытается создать диалог, то идентификатор шаблона диалога (IDD_MYDLG например) он ищет в пусковом EXE модуле, хотя класс диалога и его ресурсы я зашил в DLL. Как заставить его искать в DLL?
/* Подробности
ЗАДАЧА: Создать модальный диалог (класса CMyDialog : CDialog) изнутри DLL, в которую зашиты ресурсы этого диалога.
Мои действия:
1. (из EXE файла) Вызываю CreateMyDialog(), которая экспортирована из DLL
2. (DLL) EXPORT CreateMyDialog(){
пытаюсь создать диалог в стеке:
CMyDialog myDlg;
myDlg.DoModal()
... }
Тут и возникает проблема:
Класс CMyDialog при создании диалога использует идентификатор, который видим в области моей DLL. Но конструктор считает, что ресурсы надо искать не в DLL, а в EXE, где такого ресурса нету. Поэтому myDlg.DoModal() вылетает с ошибкой (GetLastError() говорит "The specified image file DID NOT contain a resource section"). И он прав, в EXE ничего и не должно быть.
Теперь вопрос: как заставить конструктор диалога искать ресурс не в EXE, а в DLL, в которой этот класс находится?
*/
Заранее благодарен за советы и разъяснения
|
 |
AfxSetResourceHandle 27.03.03 03:21
Автор: dl <Dmitry Leonov>
|
HINSTANCE hRes = LoadLibrary("Resource.dll");
if(hRes)
AfxSetResourceHandle(hRes);
|
|
|