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

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

14.10.2011, 15:37. Просмотров 2687. Ответов 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):

Появление необъяснимых ошибок после компиляции
Добрый вечер! В общем, пишу многопоточную программу, столкнулся с необъяснимым...

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

При компиляции отображается пустое окно
Подскажите, есть исходник написанный под Borland C++, я его открываю через...

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

Графика в билдере
есть программа,в ней нужно распознавать фотки,как можно сделать так что бы...

Подпрограммы в билдере
А как в билдере создавать подпрограммы (функции)? В Дельфи в Type TForm1...

25
__bool
285 / 226 / 27
Регистрация: 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
LK
Заблокирован
15.10.2011, 19:13 #16
у меня такого файла нет:
C++
1
Debug\\bind.dat
Supported languages & Operating Systems
(Поддерживаемые языки и операционные системы):
C++Builder versions
5-6
2006-2010
XE-XE2
т.е.: 2006,2007,2009,2010 - вам не понятна запись 2006-2010 ?
0
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 19:36  [ТС] #17
Цитата Сообщение от LK Посмотреть сообщение
у меня такого файла нет:
это не важно, он создастся, главное - чтобы папка была такая.


Цитата Сообщение от LK Посмотреть сообщение
C++Builder versions
5-6
2006-2010
XE-XE2
откуда инфа? вот что вижу я:
0
Миниатюры
Окно вывода ошибок компиляции в билдере  
LK
Заблокирован
15.10.2011, 20:04 #18
Цитата Сообщение от moskk Посмотреть сообщение
откуда инфа? вот что вижу я:
вы по ссылкам ходить умеете? повторяю для особо одаренных ( это я вспомнил про буль и велью в соседней теме, без обид ) : Supported languages & Operating Systems
0
Миниатюры
Окно вывода ошибок компиляции в билдере  
moskk
15 / 15 / 1
Регистрация: 29.05.2011
Сообщений: 45
15.10.2011, 20:30  [ТС] #19
Цитата Сообщение от LK Посмотреть сообщение
вы по ссылкам ходить умеете?
я много чего умею, даже крестиком вышивать, если надо. я ж не виноват, что на сайте разработчика в разных местах противоречивая информация?
ну кстати, я тут набросал такую компактную штуку, которая реализует мою изначальную задумку. класс добавляет к отлаживаемой программе консольное окно, в которое таки можно выводить лог.

кстати, у вас не появилось никаких идей по поводу "куда пропадают числа"? ну, вдруг...
0
Вложения
Тип файла: rar fastLoger.rar (6.5 Кб, 12 просмотров)
LK
Заблокирован
15.10.2011, 20:40 #20
дык, числа у меня и не появлялись
0
15.10.2011, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 20:40
Привет! Вот еще темы с решениями:

Отчет в Билдере
У меня в программе нужно печатать отчет данных с stringgrid-а и еще нескольких...

Строки в СИ++ Билдере
UnitHalt.cpp(32): E2285 Could not find a match for 'operator...

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

Чат на билдере
хочу написать подобие чата на билдере все, что нашел в гугле...


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

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

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