Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Вывод в консоль из Buider


Автор: kutuzov 2.2.2007, 18:20
Добрый день
Пишу GUI программу а С Builder.
В некоторых местах программы отладочные сообщения должны выводится при помощи printf 
Есть ли возможность средствами билдера посмотреть вывод программы (Окно отладки какое-то к примеру?)
Если через виндовый шел запускать тоже на экране ничего не появляется...
Единственное что придумал program.exe > log.txt  но это не очень удобно.. smile 

Автор: Romikgy 2.2.2007, 18:24
error standart handle , имхо туда писать , правда как смотреть .... наверное только с помощью спец прог

Автор: _pussbb 2.2.2007, 22:01
А почему не  хочеш создать скажем форму будет называться  консоль и пишы туда что хочеш. поместив TRichEdit or TMemo

Автор: kutuzov 5.2.2007, 11:49
Цитата(_pussbb @ 2.2.2007,  22:01)
А почему не  хочеш создать скажем форму будет называться  консоль и пишы туда что хочеш. поместив TRichEdit or TMemo

Потому что заданее хочет в консоль printf'ом писать smile

Автор: Romikgy 5.2.2007, 11:57
Цитата(kutuzov @  5.2.2007,  10:49 Найти цитируемый пост)
Потому что заданее хочет в консоль printf'ом писать

не понял о каком задании smile
но это не стыкуется с 
Цитата(kutuzov @  2.2.2007,  17:20 Найти цитируемый пост)
Пишу GUI программу а С Builder.


Автор: kutuzov 5.2.2007, 18:23
Если это важно, объясню
К C Builder компилируется модуль написанный на С. Модуль я работать заставил, но он выдает все сообщения printf'om. Следующее что надо сделать разобраться как этот вывод посмотреть. 

Автор: 040375 5.2.2007, 20:41
Никак ты не заставишь консоль понимать просто так то, что выводишь из Buiilder.
Кодировочка то не та smile. Надо смотреть, в какой кодировке выводишь ты текст и в какой понимает его консоль по умолчанию. Можно конечно поэксперементировать, вывести в UTF-8 или Unicode, но смысл?

Автор: Romikgy 5.2.2007, 21:56
kutuzov, идея появилась ,
переопределить стандартный поток вывода , на куда то в другое место , допустим в файл smile

Автор: nerezus 5.2.2007, 22:05
AllocConsole?

Автор: kutuzov 5.2.2007, 22:25
Цитата(Romikgy @ 5.2.2007,  21:56)
kutuzov, идея появилась ,
переопределить стандартный поток вывода , на куда то в другое место , допустим в файл smile

Спасибо smile
так и делаю. См. мой 1 пост smile
prog.exe > log.txt

Автор: Romikgy 5.2.2007, 22:26
можно но потом все равно надо будет данные вытягивать как то 
а юзая
SetStdHandle
можно имхо напрямую спрямить в файл smile

Добавлено @ 22:30 
kutuzov, 
Цитата(kutuzov @  5.2.2007,  21:25 Найти цитируемый пост)
prog.exe > log.txt 

это ты делаешь средствами системы, а я предлагаю сделать средствами проги!

Автор: kutuzov 5.2.2007, 22:39
Цитата(Romikgy @ 5.2.2007,  22:26)
можно но потом все равно надо будет данные вытягивать как то 
а юзая
SetStdHandle
можно имхо напрямую спрямить в файл smile

Добавлено @ 22:30 
kutuzov, 
Цитата(kutuzov @  5.2.2007,  21:25 Найти цитируемый пост)
prog.exe > log.txt 

это ты делаешь средствами системы, а я предлагаю сделать средствами проги!

А смысл???
хочется в реальном времени смотреть что программа пишет

Автор: Romikgy 5.2.2007, 22:53
Цитата(kutuzov @  5.2.2007,  21:39 Найти цитируемый пост)
хочется в реальном времени смотреть что программа пишет 

тогда в мемо можешь спрямить поток имхо

Автор: kutuzov 5.2.2007, 23:06
Цитата(Romikgy @ 5.2.2007,  22:53)
Цитата(kutuzov @  5.2.2007,  21:39 Найти цитируемый пост)
хочется в реальном времени смотреть что программа пишет 

тогда в мемо можешь спрямить поток имхо

Спасибо smile
Уже почитал smile

Автор: Yra 6.2.2007, 16:50
Всем привет!

у меня другая идея: сообщение , которое должно выводится в консоль я бы сделал так.......

написал бы маленькую консольную прогу, которая выводит свою командную строку
(2-й аргумент ком.стр.) а вызывал бы эту консоль так:
 
....
....
{
 ....
 char ar[200];

 sprintf(ar, "строка", /*в неё можно разные аргументы записать*/);

 CreateProcess(..., ar, .... ,CREATE_NEW_CONSOLE, ....); // вызов консоли с ком.строкой - ar

} 

Как идея?????

Автор: 040375 7.2.2007, 18:00
Что то я не пойму - над чем головы греете??? Консоль, т.е. котора cmd - наверняка выводит русский текст в кодировке 866, а билдер или в unicode или в UTF-8 или в 1251 - можно проверить.
Значит задача вывести содержимое буфера с текстом, конвертированным в 866 на консоль. А вот каким способом - решаете сами.
Наверняка есть различные ф-ии для этого. А городить для этого такой огород....ещё и целую прогу писать.....?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)