Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Mayor работа с консолью и камандной строкой  (Прочитано 10362 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« : 28-08-2009 14:17 » 

Здравствуйте!
При написании программы на Visual C++ 6.0 возникла необходимость добавить возможность запуска программы из командной строки. При создании консольного приложения используется функция main(), но у меня программа содержит диалоги и интерфейс. Может быть в моем случае используется другая функция?

для работы диалогов или графического интерфейса старт через main консольного приложения никаких проблем не представляет, я сам так делал десятки раз, единственно что может напрягать, это наличие окошка консоли

для запуска программы из командной строки, требуется либо перейти в папку содержащую программу, либо прописать путь к программе в переменных окружения и перезагрузится, никаких различий между запуском консольного и графического приложения таким образом нет
« Последнее редактирование: 01-09-2009 14:47 от Sla » Записан

1n c0de we trust
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 28-08-2009 14:24 » 

Цитата
либо прописать путь к программе в переменных окружения и перезагрузится,
Немедленно садись за учебники.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 30-08-2009 19:29 » 

Mayor, stdout рожден в языке 'C' систем UNIX.

Знаешь Ты его только потому что он вошел в стандарт языка 'C' который был принят в 89 году и закрепил ту ситуацию которая была на тот момент реализована в системах UNIX. И данный стандарт требует, что бы при запуске программы она имела три открытых стандартных потока ввода-вывода: stdin, stdout, stderr.
Записан
Mayor
Специалист

ru
Offline Offline

« Ответ #3 : 31-08-2009 12:28 » 

Mayor, stdout рожден в языке 'C' систем UNIX.

Знаешь Ты его только потому что он вошел в стандарт языка 'C' который был принят в 89 году и закрепил ту ситуацию которая была на тот момент реализована в системах UNIX. И данный стандарт требует, что бы при запуске программы она имела три открытых стандартных потока ввода-вывода: stdin, stdout, stderr.


прикольно, а если я запущу графическое приложение у него все равно эти 3 потока открыты будут?
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 31-08-2009 12:34 » 

Mayor, Как не странно, да. Попробуй запустить с консоли любое графическое приложение. Все ошибки оно вывалит тебе на консоль.
Вот например
Код:
$ nautilus
Initializing nautilus-gdu extension

** (nautilus:3540): WARNING **: Unable to add monitor: Not supported
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mayor
Специалист

ru
Offline Offline

« Ответ #5 : 31-08-2009 15:41 » 

Mayor, Как не странно, да. Попробуй запустить с консоли любое графическое приложение. Все ошибки оно вывалит тебе на консоль.
Вот например
Код:
$ nautilus
Initializing nautilus-gdu extension

** (nautilus:3540): WARNING **: Unable to add monitor: Not supported

это линукс, а  в контексте винды с опцией линкера subsystem:win32  ?
зы там в циферках вместо win32 вроде 1 идет
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #6 : 31-08-2009 15:53 » 

Сделай виндовс приложение, там поупражняйся с cout<<"Hello World<<endl;. Запусти его из под консоли. И получи кучу удовольствия от созерцания своих трудов. О результах также доложи тут. Интересно все таки.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mayor
Специалист

ru
Offline Offline

« Ответ #7 : 01-09-2009 11:30 » new

Сделай виндовс приложение, там поупражняйся с cout<<"Hello World<<endl;. Запусти его из под консоли. И получи кучу удовольствия от созерцания своих трудов. О результах также доложи тут. Интересно все таки.

ничерта не печатает, даже если консоль принудительно из кода открыть, толи ее к stdout прикрутить нада, толи stdout заново инициализировать придется
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #8 : 01-09-2009 11:46 » 

Mayor, ‏‎Еше раз повторяю. Из под консоли запускаеш свое приложение. А не принудительно вызываеш консоль. Это две большин разници. В свое время я так отлаживался. Выкидывая в консоль прохождение контрольных точек.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mayor
Специалист

ru
Offline Offline

« Ответ #9 : 01-09-2009 11:56 » 

Mayor, ‏‎Еше раз повторяю. Из под консоли запускаеш свое приложение. А не принудительно вызываеш консоль. Это две большин разници. В свое время я так отлаживался. Выкидывая в консоль прохождение контрольных точек.

дак в этом ничего интересного нет, ты ее компилил из под subsystem:console, графическое окошко тут создается практически так же, как и для subsystem:win32, только паралельно будет болтаться окошко консоли куда можно слать отладочный вывод
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #10 : 01-09-2009 12:25 » 

Mayor, На такие вот мелочи я как-то никогда не заморачиваюсь. С каким флажком нужно компилировать или не нужно. Видел как-то изврашение в сети. Кто наиболее маленькое получит приложение Hello World. Рекорд там был 466 байт, насколько я помню. Только нафига это все нужно было?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mayor
Специалист

ru
Offline Offline

« Ответ #11 : 01-09-2009 12:33 » 

Mayor, На такие вот мелочи я как-то никогда не заморачиваюсь. С каким флажком нужно компилировать или не нужно. Видел как-то изврашение в сети. Кто наиболее маленькое получит приложение Hello World. Рекорд там был 466 байт, насколько я помню. Только нафига это все нужно было?

для того, чтобы встроить интерпретатор в приложение в котором нет стандартного окна консоли
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #12 : 01-09-2009 12:42 » 

Mayor, а зачем интерпретатору консоль. Так вот, по большому счету? Интерпретатор отрабатывает скрипт. Который ты ему подсовываеш.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines