Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
#1

Окно вывода ошибок компиляции в билдере - C++ Builder

14.10.2011, 15:37. Просмотров 2614. Ответов 25
Метки нет (Все метки)

здравствуйте.
в IDE CodeGear RAD Studio есть такое окошко - Messages, в нём ещё две вкладки, Build и Output. в M$ студии есть аналогичное окно, и есть, например, в Qt, функция qDebug, которая позволяет в это окошко выводить разные штуки - очень удобно порой. вот я и подумал, а нет ли чего подобного в билдере?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 15:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Окно вывода ошибок компиляции в билдере (C++ Builder):

Появление необъяснимых ошибок после компиляции - C++ Builder
Добрый вечер! В общем, пишу многопоточную программу, столкнулся с необъяснимым - после добавления куска кода делаю MAKE (CTRL+F9) и...

Ошибок при компиляции нет, но скомпилированное приложение не открывается - C++ Builder
Именно проблемы. Ошибок при компиляции не находит, но скомпилированное приложение не открывается. Подскажите, в чем проблема.

Программа написана без ошибок. Но при вводе данных выдает окно с ошибкой. Вложила скрин - C++ Builder
Вложила скрин с ошибкой. Очень надо. ПОМОГИТЕ

Срезы в билдере - C++ Builder
Здравствуйте. Нужна Ваша помощь. Есть код программы void __fastcall TForm1::Button2Click(TObject *Sender) { int t; int x; ...

Графика в билдере - C++ Builder
есть программа,в ней нужно распознавать фотки,как можно сделать так что бы программа распознавала надписи и цыфры на jpg и bmp очень надо...

Деревья в Билдере - C++ Builder
Ребят, прошу помочь с логикой программы, вообщем по сути нужно нарисовать дерево, не важно какое и далее с ним работать. Раньше с графикой...

25
__bool
285 / 226 / 6
Регистрация: 13.06.2010
Сообщений: 744
14.10.2011, 15:53 #2
Честно говоря не знаю как на MS и QT. Но если вы имете ввиду возможность видеть значения переменных во время работы программы,
то Watch List
Найти его можно сдесь:
View | Debug Windows | Watches
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
14.10.2011, 20:28  [ТС] #3
ненене, воч - это само собой. смотрите вложенный скриншот - я об этом окошке. там ещё вкладка Build - в неё ошибки и ворнинги выводятся при компиляции.
в МС студии в такое окно можно выводить как бы лог. наверняка в билдере тоже можно как-то. но как?
0
Миниатюры
Окно вывода ошибок компиляции в билдере  
LK
Заблокирован
14.10.2011, 23:07 #4
оно так и называется и включается пунктом в меню "Вид", по умолчанию - включено
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 01:05  [ТС] #5
да знаю я, как оно называется, и где включается тоже знаю! а вот как _в_билдере_в_рантайме_ вывести в него сообщение?? вот в чём основной вопрос. может быть, есть какая-то функция для этого?
0
LK
Заблокирован
15.10.2011, 02:11 #6
какие сообщения ? плаксивые письма бросившей вас любимой ? ставьте точки останова и будут вам сообщения. А лог он и выводится - после компиляции в том же окне сообщений, синенькими буковками, у меня.
2
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 02:40  [ТС] #7
поверьте, я знаю и про точки останова. они не подходят для моей задачи - там два потока обмениваются информацией, и на [относительно] больших скоростях передачи часть её куда-то утекает. я не могу их останавливать - тогда всё штатно отработает.
собственно, если вы расскажете, как "синенькими буковками" вывести лог - я тоже буду рад)
ну и между прочим, сейчас возник вопрос: у куда напрвляются стандартные потоки ошибок и вывода в графическом (не консольном) приложении? можно же взять тупо printrf... и всё будет в шоколаде.
1
LK
Заблокирован
15.10.2011, 03:14 #8
вы бы поконкретнее описали задачу и возникшую проблему, например, какая информация, возможно, можно придумать ее визуальное отображение , перехват ошибок, протоколирование работы программы в свой лог и т.д.
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 14:16  [ТС] #9
ну ладно, вы сами напросились
во вложении лежит тестовая прога для класса (TProxyV0), который:
1. мониторит время последней записи в некоторый указанный ему файл;
2. при изменении этого времени читает из него данные и пишет отметку о том, что данные прочитаны (в первых четырёх байтах файла хранится кол-во чисел в файле, при прочтении данных из файла в первые 4 байта пишется ноль).
это нужно для получения данных от другой программки (больше никак с ней связаться нельзя). мониторинг реализован так: есть vcl'ный тред (управляется кнопками Start/Stop), в котором ожидается событие изменения времени записи файла (с использованием FindFirstChangeNotification), когда оно наступает, через Synchronize вызывается обработчик, который пишет полученные данные в мемо в левом групбоксе. правый групбокс - это имитатор той другой проги. по кнопке Send в файл пишется предыдущее число + 1 (начиная с единицы), и в правое мемо выводятся все числа, которые ещё не прочитаны из файла. всё просто. задача передачи в реальном времени не стоит, главное, чтобы все числа прошли от Sender'а к Receiver'у.
собственно, проблема: всё нормально работает, только если посылать числа не очень часто. а если зажать кнопку Send ентером, то в правое мемо попадают не все числа, периодически пропадают куски данных по 10-50 чисел. и при этом я не могу в дебаге воспроизвести эту ситуацию, т.к. ни сендера, ни ресивера останавливать нельзя - реализм пропадает, понимаете ли...
в файле хранится текущее кол-во данных и массив с данными, новые данные пишутся в конец массива, поэтому сендер по идее не может затереть написанное им ранее. размер массива взят с запасом, поэтому он никогда не переполняется, проверено.
может, кто знает, куда могут данные теряться? или как можно узнать без отладки?
Цитата Сообщение от LK Посмотреть сообщение
вы бы поконкретнее описали задачу и возникшую проблему, например, какая информация, возможно, можно придумать ее визуальное отображение , перехват ошибок, протоколирование работы программы в свой лог и т.д.
собственно, всё это я сделал, насколько мог, кроме собственного лога. и как раз задумавшись о логе, я понял что самый удобный лог из всех, что можно придумать - это в окне Output.
0
Вложения
Тип файла: rar proxy.rar (10.3 Кб, 11 просмотров)
LK
Заблокирован
15.10.2011, 14:51 #10
суть не в том, что я напросился.
вы говорили одно:
в IDE CodeGear RAD Studio есть такое окошко - Messages, в нём ещё две вкладки, Build и Output. в M$ студии есть аналогичное окно, и есть, например, в Qt, функция qDebug, которая позволяет в это окошко выводить разные штуки - очень удобно порой. вот я и подумал, а нет ли чего подобного в билдере?
потом - совершенно другое:
Цитата Сообщение от moskk Посмотреть сообщение
два потока обмениваются информацией, и на [относительно] больших скоростях передачи часть её куда-то утекает
, что не имеет абсолютно никакого отношения к теме сообщения.
может, не стоило начинать от сотворения мира ?
в подобных случаях я всегда вспоминаю старый анекдот:
1. Летят два слона, один - желтый, другой - в Африку.
2. Сколько им лет ?


Добавлено через 20 минут
собственно, всё это я сделал, насколько мог, кроме собственного лога. и как раз задумавшись о логе, я понял что самый удобный лог из всех, что можно придумать - это в окне Output.
чтобы отслеживать работу в рантайме, можно попробовать EurekaLog
Описание продукта: EurekaLog 6
1
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 14:58  [ТС] #11
ещё раз.
Цитата Сообщение от LK Посмотреть сообщение
вы бы поконкретнее описали задачу и возникшую проблему...
моя задача - отладить класс TProxyV0, а проблема в том, что это у меня пока не получается.

Цитата Сообщение от LK Посмотреть сообщение
может, не стоило начинать от сотворения мира ?
если бы вы не спросили про задачу, я бы о ней молчал. и изначально мой вопрос был, если помните, о том, как вывести сообщение - куда уж короче?? вывести сообщение - не задача, а всего лишь средство её достижения, одно из возможных и самое удобное, которое удалось придумать.

ещё есть претензии к постановке вопроса, или уже по делу поговорим?
0
LK
Заблокирован
15.10.2011, 15:51 #12
да какие у меня могут быть претензии , просто, если волнует конкретный вопрос - то и задавать надо этот конкретний вопрос , хотя косвенным образом можно к нему подобраться и в разговоре о сообщениях, я понимаю вашу логику
"по делу" я уже вспоминал EurekaLog, вот еще - как с ней работать : Советы и трюки в EurekaLog, часть 1

Добавлено через 41 минуту
может, у вас Билдер настроен (в плане настроения ) не обрашать внимания на ошибки :
[BCC32 Error] u_main.cpp(45): E2225 Too many initializers
[BCC32 Error] u_main.cpp(45): E2141 Declaration syntax error
[BCC32 Error] u_main.cpp(45): E2139 Declaration missing ;
[BCC32 Warning] u_main.cpp(45): W8004 'efile' is assigned a value that is never used
[BCC32 Error] u_main.cpp(45): E2190 Unexpected }
[BCC32 Error] u_main.cpp(51): E2040 Declaration terminated incorrectly
[BCC32 Error] u_main.cpp(61): E2141 Declaration syntax error
[BCC32 Error] u_main.cpp(62): E2238 Multiple declaration for 'efile'
[BCC32 Error] u_main.cpp(61): E2344 Earlier declaration of 'efile'
[BCC32 Error] u_main.cpp(62): E2141 Declaration syntax error
[BCC32 Error] u_main.cpp(65): E2040 Declaration terminated incorrectly
[BCC32 Error] u_main.cpp(65): E2141 Declaration syntax error
[BCC32 Error] u_main.cpp(65): E2238 Multiple declaration for 'i'
[BCC32 Error] u_main.cpp(65): E2344 Earlier declaration of 'i'
[BCC32 Error] u_main.cpp(67): E2141 Declaration syntax error
[BCC32 Error] u_main.cpp(70): E2303 Type name expected
[BCC32 Error] u_main.cpp(70): E2356 Type mismatch in redeclaration of 'fseek(FILE *,long,int)'
[BCC32 Error] u_main.cpp(70): E2063 Illegal initialization
[BCC32 Error] u_main.cpp(70): E2293 ) expected
[BCC32 Error] u_main.cpp(71): E2303 Type name expected
[BCC32 Error] u_main.cpp(72): E2303 Type name expected
[BCC32 Error] u_main.cpp(72): E2356 Type mismatch in redeclaration of 'fclose(FILE *)'
[BCC32 Error] u_main.cpp(72): E2063 Illegal initialization
[BCC32 Error] u_main.cpp(72): E2293 ) expected
[BCC32 Error] u_main.cpp(73): E2303 Type name expected
[BCC32 Error] u_main.cpp(73): E2238 Multiple declaration for 'f'
[BCC32 Error] u_main.cpp(50): E2344 Earlier declaration of 'f'
[BCC32 Error] u_main.cpp(74): E2190 Unexpected }
[BCC32 Warning] TProxy_realization.h(193): W8111 Accessing deprecated entity '_fastcall TThread::Resume()'
я ничего не трогал, просто открыл проект и запустил компиляцию.
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 16:23  [ТС] #13
чудеса! у меня собирается с тремя предупреждениями (одно из которых моё).
кстати, у меня билдер 2009. а у вас?
попробуйте вот эту версию - здесь вроде поменьше криминала.
0
Вложения
Тип файла: rar proxy.rar (10.3 Кб, 9 просмотров)
LK
Заблокирован
15.10.2011, 17:10 #14
РАД ХЕ (2011)
судя по всему, большого криминала и там нет, скобка не на месте, я не вникал, шас посмотрю второй

Добавлено через 18 минут
вы бы инструкцию прилагали, штоль ...
скомпилилось
при первом нажатии на СТАР - ноль реакции, при повторном - подвешивает на какое-то время себя и систему, не крепко, при нажатии на ЗЕНД программа крепко висит.
[BCC32 Warning] TProxy_realization.h(12): W8035 если кто-то подскажет, как это по-человечески реализовать - буду только рад)
[BCC32 Warning] u_main.cpp(78): W8004 'res' is assigned a value that is never used
[BCC32 Warning] TProxy_realization.h(193): W8111 Accessing deprecated entity '_fastcall TThread::Resume()'
[BCC32 Warning] TProxy_realization.h(185): W8004 'res' is assigned a value that is never used
[BCC32 Warning] TProxy_realization.h(121): W8111 Accessing deprecated entity 'TSearchRec::Time'
[BCC32 Warning] TProxy_realization.h(124): W8111 Accessing deprecated entity 'TSearchRec::Time'
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 18:18  [ТС] #15
ой. про инструкцию я как-то не подумал.
Старт и Стоп - управление задачей мониторинга файла.
Сенд - запись данных в файл.
то есть штатно нужно сначала нажать Старт, а потом - несколько раз Сенд. в ресивере должны появляться числа, начиная с 1 под ряд по возрастанию.
чтобы увидеть проблему, нужно установить фокус на сенд и зажать ентер на какое-то время - в ресивере тогда будут появляться не все числа.

Добавлено через 32 минуты
ааа, ещё в u_main.cpp, 11я строка. там нужно имя файла поправить.

Добавлено через 27 минут
кстати, насчёт Эврики: в документации написано, что она работает только с 2006м и 2010м билдером, так что я в пролёте...
0
15.10.2011, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 18:18
Привет! Вот еще темы с ответами:

Строки в СИ++ Билдере - C++ Builder
UnitHalt.cpp(32): E2285 Could not find a match for 'operator UnicodeString::=(TStrings)' Full parser context UnitHalt.cpp(23):...

Классы в билдере - C++ Builder
КаК в билдере инициализировать класс и как потом из него достать нужную переменную или функцыю? Заранее спасибо!

Length() в билдере - C++ Builder
Всем привет! Есть задание: Дан текст, содержащий от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними...

Компиляциия в билдере - C++ Builder
Написал программу, в ней используется компонет, написанный мной, из стороннего пакета, опять же моего. Когда стал компилировать релизную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru