PDA

Просмотр полной версии : Не могу указать ресурс для диалога, В DLL; Visual C++



char_ser
15.12.2004, 18:15
У меня есть dll и есть exe

// Вот участок из dll
CDialogEnterPassword2::CDialogEnterPassword2()
: CDialog(IDD_ENTERPASSWORD2, pParent)
{
// Какое-то наполнение
...
}


Какого CDialog ищет IDD_ENTERPASSWORD2 в ресурсах экзешника, а не в в своей dll? Как с этим бороться?
Это порождает ошибку:
Error 1812: Указанный файл образа не содержит секции ресурсов

Romeo
15.12.2004, 18:45
При загрузке любого ресурса указывается инстанс (instance) модуля, из которого должна происходить загрузка. По ошибке использован инстанс exe-модуля, вместо инстанса dll-модуля, вот и вся ошибка. Причины ищи сам, либо предоставляй больше исходной информации.

Kolinus
15.12.2004, 18:56
а МСДН зачем???
AfxManageModuleState()
или нечто подобное

Romeo
15.12.2004, 19:00
Верно, такая функция переписывает данные, который впоследствии использует AfxGetApp(). Возможно дело и в этом.

Eugie
16.12.2004, 14:16
char_ser, AfxSetResourceHandle() позволяет явно указать, в каком модуле MFC ищет ресурсы по умолчанию