Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2012, 18:36   #1
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию Функция WINAPI WinMain

Как сделать функцию WINAPI WinMain в консольном приложении?
apeorin вне форума Ответить с цитированием
Старый 13.12.2012, 18:44   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в консольном приложении точка входа это функция main.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.12.2012, 20:12   #3
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от apeorin Посмотреть сообщение
Как сделать функцию WINAPI WinMain в консольном приложении?
Если нужно сгенерить окно, GetModuleHandle(NULL) вернёт HINSTANCE приложения. и можешь создавать окна.. скоко хочешь.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 13.12.2012, 20:51   #4
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
Если нужно сгенерить окно, GetModuleHandle(NULL) вернёт HINSTANCE приложения. и можешь создавать окна.. скоко хочешь.
А можно подробнее?..
apeorin вне форума Ответить с цитированием
Старый 13.12.2012, 21:27   #5
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от apeorin Посмотреть сообщение
А можно подробнее?..
Код:
#include <windows.h>

HINSTANCE hInst;
HWND hWnd;

bool RegClassWnd(void)
{
WNDCLASSEX wc;

wc.cbSize = sizeof(WNDCLASSEX);
....
итд
сюда нужен hInst приложения.. для рега
....
return RegisterClassEx(&wc);
}

int main(void)
{
hInst = GetModuleHandle(NULL);
if(!RegClassWnd()) return;

hWnd = CreateWindowEx(0,... всякая херь и hInst);
if(!hWnd) return;

UpadteWindow(hWnd);
ShowWindow(hWnd, SW_NORMAL);

....
Реализация живого цикла окна
т.е. обработка его сообщений
в мсдн инфа больше по созданию окон.
...
}
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 13.12.2012, 21:28   #6
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

благодоря этому методу... можно обойтись и без WinMain()
только будет консоль и ещё ваше окно.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 13.12.2012, 21:32   #7
Dizelektwo
Пользователь
 
Регистрация: 05.04.2012
Сообщений: 56
По умолчанию

apeorin

в проектах win 32 в точку входа передается дескриптор главного окна. Что бы создать окно через консольное приложение нужно извлечь дескриптор консольного окна. В оконных приложениях строгая иерархия.

Последний раз редактировалось Dizelektwo; 13.12.2012 в 21:44.
Dizelektwo вне форума Ответить с цитированием
Старый 14.12.2012, 00:44   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Dizelektwo Посмотреть сообщение
apeorin

в проектах win 32 в точку входа передается дескриптор главного окна. Что бы создать окно через консольное приложение нужно извлечь дескриптор консольного окна. В оконных приложениях строгая иерархия.
эмм, какой дескриптор?
главного окна нету там, там передается хендл нашего модуля нужный некоторым функциям, ток получить его легко и самому.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.12.2012, 02:01   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
В оконных приложениях строгая иерархия.
Ну не совсем иерархия и было это очень давно... во времена 3.1, кажись. В наследство остался один из параметров винмейна, который уже давно всеми игнорируется.
p51x вне форума Ответить с цитированием
Старый 14.12.2012, 08:58   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Да не было у WinMain параметря с главным окном никогда...

Вопрос зачем в консольном приложении окно - уж тогда лучше делать оконное приложение прямо...
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание объекта класса в WinMain Стремящийся Win Api 5 10.03.2012 19:01
Как рекурсивно вызвать WinMain Стремящийся Win Api 14 05.03.2012 12:17
Delphi: winAPI функция DlgDirListComboBox Ни могу понять... excorsist Помощь студентам 2 22.03.2010 14:56
Функция обратного вызова и таймер на WinApi flug Win Api 4 17.09.2009 16:06
нужна функция WinApi, которая переводит десятичное число в шестнадцатиричное??? Morskoivolk Win Api 3 02.04.2007 18:14