![]() |
|
![]() ![]() ![]() |
|
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Не только. С моей точки зрения основная трабла была в ресурсах. ![]() -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Bukmop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
||||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
При статической линковки MFC-ей? Добавлено @ 22:18 Bukmop, ты можешь показать как победил ресурсы? Что и куда ты вписал? -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Bukmop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
DeadSoul, именно при статической линковке MFC-ей я проблему так и не решил. Теперь буду решать, продолжать биться как рыба об лёд или переписывать все ранее созданные библиотеки этого проекта на Shared DLL.
О ресурсах: В твоём примере (как я уже упоминал) после получения в EXE-ке указателя на "CPropertyPage" из DLL-ки, принудительно поменял HINSTANCE в структуре PROPSHEETPAGE на DLL-ный. А пример Earnest и так работает. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Не знаю, получится ли победить ситуацию, если оставить MFC DLL статически прилинкованной. Думаю, что нет. Там ведь в чем дело-то: в MFC есть объект (какой-то трам-пам-пам-state, который синхронизирует доступ к различным ресурсам, в том числе к ресурсам-RC, а также картам окон (т.е. HWND-CWnd) и т.д. Чтобы все работало, нужно, чтобы эта штука была в приложениии одна. Если каждый модуль будет использовать свой экземляр статически прилинкованной MFC DLL, то и этот менеджер у всех будет свой... В общем, не договорятся. Кроме того, использование статической MFC влечет за собой статический RunTime, т.е. у каждого модуля будет свой распределитель памяти, и отсюда проблемы с освобождением "чужой" памяти.
Таким образом, статическая линковка MFC подходит только для приложения, которое состоит из одного EXE. -------------------- ... |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Earnest, почему в твоем примере нет проблем с ресурсами?
В каком месте ты это менял? -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Bukmop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
Строка - 21. Это сообщение отредактировал(а) Bukmop - 3.6.2006, 12:48 |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Bukmop, thanks. Как-то не посмотрел, что этот мембер открытый.
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
-------------------- ... |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Earnest, честно говоря, хотеось бы более развернутый ответ
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Bukmop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
DeadSoul, там всё оказалось просто. Earnest использовала MFC extension DLL, а там создаётся CDynLinkLibrary и по этому AfxFindResourceHandle находит нужный ресурс.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Извини, я просто не очень поняла, вопрос это или наезд ![]() В дополнение к тому, что уже сказал Bukmop: WinAPI, чтобы найти ресурс, нужно указать точно в каком модуле он лежит. MFC это дело слегка скрывает: ExtensionDLL связываются в цепочку, которая хранится во внутренней глобальной переменной. Когда ты запрашиваешь ресурс, MFC проходит по цепочке, опрашивая все библиотеки по очереди, пока не найдет нужный. -------------------- ... |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Bukmop, Earnest, спасибо.
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |