Borland C++ 5 для себя


Сообщения об ошибках. - часть 2


Error: 2000dlgc.cpp(60,48):Type mismatch in parameter 'caption' in call to 'TWindow::MessageBox(const char *,const char *,unsigned int)'

Здесь Borland среди всего прочего напоминает Вам, каким должен быть синтаксис команды "MessageBox". Взлянув внимательно и сравнив с нашим текстом, мы увидим, что количество запятых отличается. К сожалению, не всегда это бывает так просто - в команде могут быть необязательные параметры - т.е. такие, которые можно не указывать - тогда количество запятых в реальном коде может быть меньше, чем в описании синтаксиса. Но проверять такие вещи стоит. Более точное предполагаемое место ошибки можно увидеть в начале сообщения - а именно - что-то не так с "параметром 'caption'" - т.е., с заголовком программы - и искать надо где-то около текста "Наше сообщение", что соответствует действительности - именно перед заголовком не хватает сейчас запятой.

Если же простое чтение сообщений об ошибках не дает Вам идеи о ее сути, и опознать в тексте файла Вы ее тоже не можете, попробуйте почитать HELP. Там есть раздел, который называется "Error messages". Иногда там действительно можно найти подробности, помогающие устранить ошибку. Собственно, можно даже в подобной ситуации не запускать Help отдельно, а просто выделить сообщение об ошибке, нажать правую кнопку мыши и в появившемся меню выбрать "Help".

Да, запятая оказалась не такой простой ошибкой. Возьмем что-либо попроще. Запятую вернем на место, а удалим последнюю скобку -

MessageBox("Вы нажали на кнопку\nСпасибо Вам за это!", "Наше сообщение", MB_OK | MB_ICONINFORMATION;

После компилляции мы получим сообщение об одной ошибке и Borland четко укажет на нее:

Error: 2000dlgc.cpp(60,48):Function call missing )

Редкий случай, когда, нажав на сообщение об ошибке, мы попадаем почти на ее место - в одной позиции от нее, да еще и все ясно - "В вызове функции пропущен знак 'скобка'" - что-что, а скобки Borland считать умеет!

И давайте посмотрим еще на один тип ошибки, который возникает, когда Вы долго и упорно отлаживаете программу - редактируете, компиллируете, запускаете - и все это много раз по кругу. Запустим нашу программу не командой "Run", а просто из ее папки - там всегда есть какая-то работоспособная версия. Не закрывая программы вернемся в Borland, удалим все ошибки, нажмем "Build". Что получим - снова ошибку - см.рис.3.3.

Рисунок 3.3. Билдинг не удался.

Сообщение об ошибке будет иметь следующий вид - см.рис.3.4.

Рисунок 3.4. "Не могу открыть файл 2000.exe"

От чего произошла эта ошибка, Вы уже догадались - Borland попытался создать новый вариант программы "2000.exe" в тот момент, когда эта программа была запущена. И он об этом догадался, написав в скобках - "Программа все еще работает?" Вывод - всегда закрывайте создаваемую Вами программу, когда создаете ("Make", "Build") новый вариант.




Начало  Назад  Вперед