![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Встретился с такой вот проблемой:
Существует некое приложение, к нему подключается dll-ка. У dll-ки есть свои ресурсы(в смысле диалоги,меню,битмапы и т.д.). Я пытаюсь по событию в головном приложении вызвать некую процедуру из dll-ки, которая уже отображена на адресное пространство приложения. В процедуре создается из шаблона в ресурсах и показывается диалог. Проблема в том, что, насколько я понял, ресурсы dll-ки не отображаются на память приложения автоматически. И, когда я вызываю,допустим, шаблон с идентификатором 102(вернее получаю доступ по некому адресу в памяти), этот адрес - адрес в пространстве ресурсов приложения. И действительно, если в dll вызовется CreateDialog с идентификатором, таким же как у головного приложения, то откроется шаблон головного приложения. Я понимаю, что можно обойтись без шаблонов, но с ними удобнее, и мне бы хотелось как-нибудь попытаться не обойти эту пробему, а решить её. Заранее спасибо, за ответы. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
HGLOBAL LoadResource(
HMODULE hModule, // resource-module handle HRSRC hResInfo // resource handle ); здесь видать в параметре HMODULE hModule, указан ноль ? или чет другое? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| En_t_end |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Romikgy,
Смотри: это происходит в некоторой процедуре в dll:
где g_maininstancehandle - HINSTANCE головного приложения, IDD_MAIN_DIALOG - идентификатор шаблона диалога из ресурсов dll-ки. dialog_proc - процедура, обрабатывающая сообщения для диалога. Теперь, в головном приложении:
И должен показываться диалог, но этого не происходит, причем, если IDD_MAIN_DIALOG будет иметь значение 102, которое,к примеру, также определенно в головном приложении, то диалог создаться и покажется именно с шаблона головного приложения. |
||||
|
|||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 4 Всего: 29 |
||||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
En_t_end, добавь в DLL функцию, которая будет возвращать HINSTANCE. Пример см. в аттаче.
Присоединённый файл ( Кол-во скачиваний: 4 )
restest.zip 3,30 Kb |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |