Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Пытаюсь данные из проект показывать в консоле |
Автор: Dreamer_0x01 16.10.2006, 14:48 |
Добрый день всем-всем-всем! Решил вот выводить некоторые данные на консоль, а с сим механизмом никогда ВООБЩЕ не работал. Все выводится как мне надо, но при закрытии программы консоль автоматом закрывается тоже. Можно ее как-то оставить "повисеть" до принудительного ее закрывания? (это чтобы окно висело и в заголовке было написано что-то типа "сеанс программы такой-то закончен", или как его там дословно - не помню) =) |
Автор: tnt17 16.10.2006, 17:06 |
Юзай getch(); перед выходом из программы. |
Автор: Dreamer_0x01 18.10.2006, 20:12 |
я понимаю, что можно вставить принудительную задержку в ход выполнения программы. Но все-таки хотелось бы добиться именно описанного выше эффекта. |
Автор: Nuzur 19.10.2006, 09:33 |
Dreamer_0x01, создай поток в нем создай консоль и жди от окна создателя сообщения о закрытии, после чего передавай сообщения пользователю. Оно? |
Автор: Dreamer_0x01 20.10.2006, 14:05 |
Nuzur, Не очень понял. Где ждать, и каким образом? А как сделать, если у меня консольное окно - единственное? (или программа использует несолько окон, но только консольные?) Мне кажется, это должно как-то делаться намного проще, без ожиданий собщений от потоков создателей. |
Автор: Nuzur 20.10.2006, 16:19 | ||||
Dreamer_0x01,
CEvent
какая разница? Создал ты свою консоль, создал с первой поток, выбрал ГЛАВНУЮ тебе уж веднее какую. Поток висит и проверяет CEvent каждого сына\дочери(как вам бут угодно) но ет уже детали. Про синхронизацию потоков отправляю к форуму(не один раз обсуждалось) и к соответ. лит. Удачи! |
Автор: Earnest 20.10.2006, 16:54 |
Dreamer_0x01, зачем усложняешь? Либо консоль создается для какого-то процесса (что просто и неявно), и тогда - уж извини - накрывается вместе с этим процессом. И единственный выход - поставить какую-нибудь задержку. Не обязательно getch() - можно ждать чего-нибудь - события, например... Главное, чтобы процесс не закрылся. Либо консоль создается отдельно, явно и ты явно ею управляешь... Установить свой заголовок можно в обоих случаях - SetConsoleTitle. |
Автор: Rickert 20.10.2006, 17:57 |
Если работаешь в VS то просто запусти программу через Ctrl + F5. Также можно в конце программы воткнуть Sleep(10000) - 10 секунд будет висеть. |
Автор: Dreamer_0x01 22.10.2006, 12:33 | ||
Earnest, помнишь win98? Там при запуске консольных программ, либо программ, работающих в эмуляции ДОС, пр завершении работы программы консоль оставалась висеть на экране, в ней было написано что-то типа того, что сеанс завершен. А был режим иавтоматического закрытия таких окон при завершении. Выставлялось это в свойствах ярлыка, запускающего такую программу. Я вот и хочу сделать что-то подобное. ЗЫ. Задержкой я и сейчас пользуюсь, просто тупо жду реакции пользователя, но хочется как всегда что-то "эдакое" сотворить =)
Да синхронизация меня сейчас менее всего интересует, не тот проект малость ;) |
Автор: Dreamer_0x01 23.10.2006, 00:50 |
Мне не подойдет CTRL+F5, я ж не буду заказчику предлагать к моей проге вижуал студио поставить и мой исходник в нем запустить ;) |
Автор: Rickert 23.10.2006, 03:34 |
Dreamer_0x01, а, ну так бы и сказал, а то я думал у тебя что-то типа проблема увидеть результат выводящийся на экран ![]() |
Автор: Dreamer_0x01 23.10.2006, 08:42 |
Я результат увижу в любом случае ;) А вот пользователь может не заметить ;) |