Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов из MFC WinAPI окна сторороннего приложения 
V
    Опции темы
x8m6
Дата 7.1.2012, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть WFC - приложение. Есть еще одно C-приложение, которое начинает работу с вызова функции:
Код

int WINAPI WinMain (HINSTANCE hInstance, char *lpszCommandLine)

Мне нужно встроить 2-ое C-приложение в 1-ое и вызывать WinMain в качестве функции библиотеки.
Реально ли вызвать WinMain из WFC? Что передавать в качестве hInstance?
PM MAIL   Вверх
Dem_max
Дата 7.1.2012, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 1
Всего: 39



Цитата

Реально ли вызвать WinMain из WFC? 

конечно

Цитата

Что передавать в качестве hInstance?

HINSTANCE hInstance = GetModuleHandle(NULL);


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
x8m6
Дата 8.1.2012, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Что - то не получается. После всех усановок внутри WinMain вызывается:
Код

DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_MAIN_DLG), NULL, (DLGPROC) MainDialogProc,
            (LPARAM) lpszCommandLine);

(см. WinUser.h в MicrosoftSDK/Windows/v6.0A/include)
После этого вызова должно появится завестное окошко, но не появляется. Если запускать 2-ое приложение как -отдельное exe то все ok. Если как библиотечную C-функцию то не получается. Никаких ошибок не вываливается.
Поясню еще раз что я делаю - перекомпиливаю 2-ое приложение как стат. библиотеку и запускаю из первого. Возможно, что в exe прошиваются какие-то доп. ресурсы а в lib они не попадают? 
MAKEINTRESOURCEW (IDD_MAIN_DLG) - вот это что значит?
PM MAIL   Вверх
Dem_max
Дата 9.1.2012, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 1
Всего: 39



Цитата

MAKEINTRESOURCEW (IDD_MAIN_DLG) - вот это что значит?

это собственно сам диалог из ресурсов

Цитата

DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_MAIN_DLG), NULL, (DLGPROC) MainDialogProc,
            (LPARAM) lpszCommandLine);

при вызове этой функции что возвращается то ? какая ошибка ?


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
x8m6
Дата 9.1.2012, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

при вызове этой функции что возвращается то ? какая ошибка ? 

Ошибки никакой не вываливается, но возвращается -1.
PM MAIL   Вверх
Estranged
Дата 9.1.2012, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У Вас не создается диалог, потому что в exe файле, который вызывает DialogBoxParam функцию, НЕ найден ресурс IDD_MAIN_DLG, потому что он - ресурс - содержится в приложении-2, как Вы говорите, собранном в виде lib, и в главный exe ресурсы свои не добавляет. Перенесите диалог в главный exe - первое приложение. Либо переделайте с DialogBoxIndirectParam.
PM MAIL   Вверх
x8m6
Дата 9.1.2012, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


 




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


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

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