Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CDialog::DoModal поиск ресурса 
V
    Опции темы
17dufa
Дата 21.8.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



Добрый день.
Один и тот же диалог из одной и той же dll в одном приложении работает, в другом DoModal возвращает -1. залез в dlgcore.cpp проблема здесь:
Код

    if (m_lpszTemplateName != NULL)
    {
        hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
        HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
        hDialogTemplate = LoadResource(hInst, hResource);
    }

в одном случае hResource находится, в другом нет. а происходит это потому, что hInst в неудачном случае указывает на стандартный 0x40..0, а в рабочем варианте - на что-то пользовательское. m_lpszTemplateName в обоих случаях 0x85.
FormatMessage от GetLastError выдает что-то нечленораздельное "Указанный файл образа не содержит секции ресурсов."

в общем, ручками переключил использование ресурсов (AfxSetResourceHandle) на dll перед вызовом диалога и все заработало. в работающем проекте подобный эффект достигается либо другими способами, либо я это упустил при копипасте.

Это сообщение отредактировал(а) 17dufa - 21.8.2009, 13:25
PM MAIL   Вверх
Earnest
Дата 21.8.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Скорее всего, одна DLL собирается как Extension (где само все работает), а вторая - как Regular.
Цитата(17dufa @  21.8.2009,  13:44 Найти цитируемый пост)
 нечленораздельное 

Как раз и говорит о том, что в целевом модуле нет искомого ресурса. Просто AfxFindResourceHandle работает по-разному в Regular и Extesion DLL. Если бы ты еще и туда влез, то сам бы все понял. 


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.