Когда 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, в которой этот класс находится?