Форум: "WinAPI";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКонсольное приложение Найти похожие ветки
← →
wal © (2005-02-04 10:21) [0]Господа, подскажите пожалуйста, как написать консольное приложение, напрмер тот же "Hello World!" не используя директиву {$APPTYPE CONSOLE}?
Это, так сказать, частный вопрос. А в общем, необходимо сделать программу, причем на этапе компиляции не известно, в консольном режиме она будет работать, или в GUI, это должно определяться параметрами командной строки во время запуска.
С уважением.
← →
Чапаев © (2005-02-04 10:22) [1]Вызывай AllocConsole() & FreeConsole() по мере необходимости.
← →
wal © (2005-02-04 12:52) [2]AllocConsole() мне новую консоль открывает, даже если я запустил из командной строки. Такое поведение меня не устраивает, если запустился из командной строки, то в ту консоль и писать надо. Так же, естественно, не работает перенаправление вывода project.exe>1.txt
С уважением.
← →
VMcL © (2005-02-04 13:11) [3]>>wal © (04.02.05 10:21)
>необходимо сделать программу, причем на этапе компиляции не известно, в консольном режиме она будет работать, или в GUI, это должно определяться параметрами командной строки во время запуска.
Консольному приложению не возбраняется создавать GUI окна.
← →
Jay1982 © (2005-02-04 13:12) [4]Передай в параметрах запуска тип приложения, а потом в зависимости от типа выполняй определённые действия
← →
BiN © (2005-02-04 13:19) [5]wal © (04.02.05 12:52) [2]
AllocConsole() мне новую консоль открывает, даже если я запустил из командной строки.
В XP и далее можно исп-ть AttachConsole
С уважением
← →
wal © (2005-02-04 13:22) [6]>VMcL © (04.02.05 13:11) [3]
>Консольному приложению не возбраняется создавать GUI окна.
Это я тоже в курсе, но
1. при выполнении такого приложения в GUI-режиме из командной строки, консоль командной строки останется "заблокированной", пока я программу не закрою (этого не происходит при запуске приложения без {$APPTYPE CONSOLE}).
2. при запуске из проводника в GUI-режиме будет создана консоль, которая мне совершенно ни к чему.
>Jay1982 © (04.02.05 13:12) [4]
>...выполняй определённые действия.
Какие?
С уважением.
← →
wal © (2005-02-04 13:24) [7]>BiN © (04.02.05 13:19) [5]
>В XP и далее можно исп-ть AttachConsole
А до ХР?
← →
wal © (2005-02-04 13:26) [8]Переформулирую вопрос.
Какие действия происходят в приложении, откомпилированном с директивой {$APPTYPE CONSOLE} до перехода на begin?
С уважением.
← →
BiN © (2005-02-04 13:33) [9]wal © (04.02.05 13:22) [6]
1. при выполнении такого приложения в GUI-режиме из командной строки, консоль командной строки останется "заблокированной", пока я программу не закрою (этого не происходит при запуске приложения без {$APPTYPE CONSOLE}).
2. при запуске из проводника в GUI-режиме будет создана консоль, которая мне совершенно ни к чему.
Думаю, нужно делать 2 отдельных процесса. MS таким образом реализует WScript.exe и CScript.exe
wal © (04.02.05 13:26) [8]
Какие действия происходят в приложении, откомпилированном с директивой {$APPTYPE CONSOLE} до перехода на begin?
Ctrl+Alt+C
← →
MBo © (2005-02-04 13:41) [10]>написать консольное приложение, не используя директиву {$APPTYPE CONSOLE}?
dcc32 -cc projectname.dpr
← →
Игорь Шевченко © (2005-02-04 13:48) [11]
> Какие действия происходят в приложении, откомпилированном
> с директивой {$APPTYPE CONSOLE} до перехода на begin?
При создании процесса подсистеме Win32 передается указание связать новый процесс с консольным сервером или не связывать. Если связывать, то окнами процесса (не создаными явно) начинает заведовать консольный сервер.
С уважением,
← →
wal © (2005-02-04 14:51) [12]Вобщем никак. Жаль.
Еще один интересный момент заметил в ходе экспериментов.
GetStdHandle для GUI-приложения возвращает ноль а не INVALID_HANDLE_VALUE. Кто-нибудь может прокомментировать подобное поведение?
С уважением.
← →
Игорь Шевченко © (2005-02-04 15:05) [13]MSDN может прокомментировать:
"If an application does not have associated standard handles, such as a service running on an interactive desktop, and has not redirected them, the return value is NULL."
С уважением,
← →
Jay1982 © (2005-02-04 15:20) [14]RTFM
← →
DVM © (2005-02-04 16:19) [15]кстати на некоторых компьютерах все работает и без {$APPTYPE CONSOLE}, а на некоторых только с ней. И там и там XP.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c