modjo 1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
||||
1 |
||||
Ошибка при компиляции03.07.2009, 11:26. Показов 11800. Ответов 13 Метки нет (Все метки)
Помогите понят что нужно добавить в код, чтоб не было ошибки при компиляции.
>fpc «F:backupcodingpascalsrc_binglava9graph.pas» Сама программа содрана с книги.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
03.07.2009, 11:26 |
13 |
55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
|
03.07.2009, 11:44 |
2 |
чтоб не было ошибки при компиляции Не знаю, что у Вас не компилируется у меня все компилится и даже работает
0 |
1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
|
03.07.2009, 11:58 [ТС] |
3 |
Что за бред! А компилятор какой? fpc или tb? Может тогда скинете архивчик? Просто я даже не знаю куда копать…
0 |
149 / 139 / 57 Регистрация: 05.06.2009 Сообщений: 310 |
|
03.07.2009, 12:02 |
4 |
У меня тоже все работает на Free Pascal.
0 |
55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
|
03.07.2009, 12:05 |
5 |
Эт не бред! У меня FreePascal 2.2.4 Боюсь, что архивчик здесь не поместится..
0 |
55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
|
03.07.2009, 12:24 |
7 |
Переименуйте имя программы. Конфликт возникает из-за того что у Вас программа называется также как и драйвер graph!
0 |
1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
|
03.07.2009, 12:42 [ТС] |
8 |
Да, похоже с этим были проблемы. Теперь немного другая. http://smages.com/t/10/b6/10b6… e251da.jpg Теперь он не может найти модуль графики, как я понял из сообщения. Предлагает указать директорию но выбрать не дает.
0 |
S2dent 55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
||||
03.07.2009, 12:50 |
9 |
|||
Честно говоря из вашего скриншота тяжело что-то разглядеть.. Попробуйте прописать путь к драйверу в программе:
0 |
1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
|
03.07.2009, 13:06 [ТС] |
10 |
На сколько я понял можно тут ничего не указывать. Вроде как не обязательный параметр. Но для эксперимента попробовать можно. Какие файлы должны присутствовать в конечной директории?
0 |
55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
|
03.07.2009, 13:17 |
11 |
На сколько я понял можно тут ничего не указывать Все верно, у меня эта программа запускается и без пути к модулю graph. Не уверен, но по-моему для этого программа и модуль graph должны находиться в одной дирректории А в конечной дирректории должен присутствовать сам файл graph.tpu
0 |
1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
|
03.07.2009, 13:32 [ТС] |
12 |
Меня работа с графикой не очень интересует. Больше с файлами. Но так как это книга, то и надо придерживаться процесса. Чтоб потом не было непоняток. Я взял обычный турбо паскаль и собрал программу (!) (там, кстати, файлы tpu действительно лежат рядом с turbo.exe). Но при работе программы выскакивает вот это: C:>12 BGI Error: Graphics not initialized (use InitGraph) Не понятно, я же использую InitGraph. Что ему опять не так… В общем: шаг — грабли, шаг — грабли… Пол книги прочем без граблей ЗЫ
0 |
55 / 53 / 24 Регистрация: 10.05.2009 Сообщений: 216 |
|
03.07.2009, 13:41 |
13 |
Тоже запустил прогу в BP и тоже ошибка.. Сменил дирректорию на BGI и все заработало..
1 |
1 / 1 / 0 Регистрация: 23.05.2009 Сообщений: 43 |
|
03.07.2009, 13:54 [ТС] |
14 |
ВО! От обычного турбо паскаля работает если запускать в папке BGI… Почему не работает в fpc не понятно. Может тож надо где-то запускать?
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
03.07.2009, 13:54 |
14 |
Странная ошибка при компиляции
Модератор: Модераторы
Странная ошибка при компиляции
Приветствую уважаемых коллег.
Разрабатываю большой проект на Лазаре. При компиляции в Linux у меня возникает такая бага:
Materials_oper.lpr(40,1) Error: Error while compiling resources. Compile with -vd for more details. Check for duplicates.
Тот же самый проект в винде компилируется и работает без проблем.
Прошу подсказать, где копать.
Добавлено спустя 1 минуту 52 секунды:
Да, забыл. Lazarus 1.2.6, FPC 2.6.4, SVN: Unversioned directory, i386-linux-gtk2.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
wavebvg » 20.04.2015 15:38:30
Удалите папку с собранными объектниками (обычно lib)
Проверьте имена файлов
Если что-то переименовывали, то, возможно, накосячили с регистрами и теперь Вам очень нужно найти косяк и исправить его.
- wavebvg
- постоялец
- Сообщения: 349
- Зарегистрирован: 28.02.2008 04:57:35
Re: Странная ошибка при компиляции
slyubez » 20.04.2015 16:24:34
Спасибо за подсказку. Я и забыл, что в пингвине файловые идентификаторы регистрочувствительные. Буду рыть.
Добавлено спустя 3 часа 38 минут 59 секунд:
Не помогло, все чисто.
Похоже, я не один такой, и проблема не решается.
http://forum.lazarus.freepascal.org/ind … ic=21782.0
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
Ism » 20.04.2015 20:50:34
В сообщении чтото про дубликаты, возможно гдето чтото объявлено несколько раз, а компилятору это не нравится
Тут надо полный лог компиляции смотреть
- Ism
- энтузиаст
- Сообщения: 908
- Зарегистрирован: 06.04.2007 17:36:08
Re: Странная ошибка при компиляции
slyubez » 20.04.2015 20:58:27
Тут надо полный лог компиляции смотреть
Как бы его получить…
Пробовал запустить Лазаря под sudo из консоли. В процессе компиляции вышло много инфы (даже больше, чем в окно сообщений), но и там ничего особенного.
Добавлено спустя 1 минуту 24 секунды:
Materials_oper.lpr(40,1) Error: Error while compiling resources
Materials_oper.lpr(40,1) Fatal: There were 1 errors compiling module, stopping
TMessagesView.CollectLineParts WARNING: 138<>136 SrcLine=Materials_oper.lpr(40,1) Fatal: There were 1 errors compiling module, stopping
TLazSourceFileManager.OpenEditorFile Fixing file name: /home/slyubez/svn/MatOper/ -> /home/slyubez/svn/MatOper
TLazSourceFileManager.OpenEditorFile skipping directory /home/slyubez/svn/MatOper
TMainIDE.DoBuildProject Compile failed
TSourceEditorSharedValues.GetMainLinkScanner not a pascal source: /home/slyubez/svn/MatOper/Materials_oper.lpi
Добавлено спустя 39 минут 34 секунды:
Сделал тест параметров компилятора и наткнулся на такую вещь (см. вложение). Теперь думаю, что делать дальше.
Добавлено спустя 25 минут 36 секунд:
Попробовал переместить файлы dialogs.ppu, dialogs.o, menus.ppu и menus.o из библиотек fpc во временный каталог. Делаю пересборку — бесполезно, ошибка та же самая.
Добавлено спустя 46 минут 10 секунд:
Такие же предупреждения есть и в виндовой версии Лазаря, но там они не мешают компиляции. После перемещения файлов в Линухе предупреждения исчезли, но проблема никуда не делась.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
Ism » 20.04.2015 22:56:56
1 Попробуйте установить Лазерус начистую, дубли могут быть следствием экспериментов со сборкой. Или перекомпиликовать Лазарус с полной очисткой
2 Удалите дубли в одной из директорий
Но вообще этого быть не должно, возможно проект содержит настройки, провоцирующие создание дублей. Тут поможет лишь пересоздание проекта с нуля и переноса форм и модулей со старого, иногда помогает
- Ism
- энтузиаст
- Сообщения: 908
- Зарегистрирован: 06.04.2007 17:36:08
Re: Странная ошибка при компиляции
slyubez » 20.04.2015 23:02:09
Тут надо переставлять и Лазаря, и FPC с предварительным сносом подчистую вместе со всеми настройками и прочим мусором. Я уже пробовал переставлять Lazarus без FPC, снеся впридачу каталог настройки — не помогло.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
Vadim » 21.04.2015 03:48:47
slyubez
А Вы не делали то, что советует Вам сам компилятор?
slyubez писал(а):Compile with -vd for more details.
- Vadim
- долгожитель
- Сообщения: 4112
- Зарегистрирован: 05.10.2006 08:52:59
- Откуда: Красноярск
Re: Странная ошибка при компиляции
slyubez » 21.04.2015 09:39:46
Честно, я пока не настолько спец по Лазарусу и не смог разобраться, где в среде подставить этот ключ компилятора. Я попробовал скопировать параметры из списка и скормить их файлу /usr/bin/fpc, добавив туда путь и имя lpr-файла проекта и опцию -vd. При запуске компилятор проверил опции и далее на первом же файле после lpr, выдав ряд хинтов и warning, выругался — can’t create object file 123.o без указания конкретной причины. Пробовал то же под sudo — не помогает.
Добавлено спустя 32 минуты 1 секунду:
UPD.
Блин, фантастика какая-то. Выяснил, что объектный файл не создается, так как я потер каталог lib. Создаю его и подкаталоги, повторяю компиляцию. Появляется ошибка о ненахождении ресурсного файла проекта — его я тоже вытер. Открываю IDE — ошибка в лексеме lfm-файла основной формы. Закрываю среду. Открываю RapidSVN, вижу ряд конфликтов и изменений. Отменяю изменения по всем файлам. Открываю среду и проект в ней, компилирую — ошибки уже нет, успешная компиляция. Что, откуда, как, почему — непонятно.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
Vadim » 21.04.2015 11:25:24
Параметры компиляции в Lazarus можно задавать через меню:
Проект -> Параметры проекта -> Параметры компилятора
В пункте «Подробность вывода» есть есть галочка специально для Вас: показывать отладочную информацию (-vd).
Посмотрите все опции, есть интересные, например для уменьшения размера откомпилированной программы (-XX).
——————————————-
Вы когда поставили себе Lazarus с FPC, SVN-ом постарайтесь не сильно злоупотреблять. Дело в том, что новые выкладки для Lazarus выходят каждую ночь и не все эти выкладки нормально действуют на IDE. Лучше всего переходить на новую версию только тогда, когда там появляется такая то фича, которая Вам крайне необходима или исправлена та ошибка, которая Вам раньше нормально жить не давала.
- Vadim
- долгожитель
- Сообщения: 4112
- Зарегистрирован: 05.10.2006 08:52:59
- Откуда: Красноярск
Re: Странная ошибка при компиляции
slyubez » 21.04.2015 11:34:45
Дело в том, что новые выкладки для Lazarus выходят каждую ночь и не все эти выкладки нормально действуют на IDE.
SVN я использую только для своего проекта, и изменения были именно в его репозитории. Версии Lazarus и FPC у меня стабильные, и я не беру их обновления с SVN-репозитория Lazarus. У меня три машины с разными ОС, на которых я веду разработку, и все они цепляются к этому репозиторию через либо TortoiseSVN (Windows), либо через RapidSVN (Linux). Возможно, какой-то из клиентов глюкнул при закоммичивании изменений.
А за инфу по размещению ключей спасибо, буду знать.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
pupsik » 22.04.2015 19:43:38
Пробовал запустить Лазаря под sudo из консоли
А вы все через судо делаете?
Error while compiling resources
— ругня на {$R *.res} файл.
Делаю пересборку — бесполезно, ошибка та же самая.
Т.е. лазарь у вас без проблем собирается, а ваш проект с багом?
п.с.
Попробовал я «проблемный проект» по вашей ссылке… У меня он запустился без малейшей проблемы. Подскажите: как можно так сломать лазарь?
Vadim
Лучше всего переходить на новую версию только тогда, когда там появляется такая то фича
И как узнать когда эта фича появляется? Бубен в руки что ли
- pupsik
- энтузиаст
- Сообщения: 1154
- Зарегистрирован: 20.08.2014 16:20:13
-
- Профиль
- Сайт
Re: Странная ошибка при компиляции
slyubez » 22.04.2015 21:11:12
А вы все через судо делаете?
Если надо пересобрать компоненты или подправить их код — приходится так делать.
Попробовал я «проблемный проект» по вашей ссылке…
Это по какой еще ссылке? Тынц на пост со ссылкой — в студию.
А вообще проблема уже решена.
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Re: Странная ошибка при компиляции
pupsik » 22.04.2015 22:35:03
Похоже, я не один такой, и проблема не решается.
сперва пишут, а потом забывают… Это ваш ТЫНЦ. Сорцы по ссылке лежат (возможно вы не зарегились на форуме, вот и не увидели Или это не вы были
п.с.
А вы слышали о правах на папку? sudo как и su чутку «карму» портит
Кстати: я ведь не писал что это ВАШ проект…
- pupsik
- энтузиаст
- Сообщения: 1154
- Зарегистрирован: 20.08.2014 16:20:13
-
- Профиль
- Сайт
Re: Странная ошибка при компиляции
slyubez » 23.04.2015 17:35:10
сперва пишут, а потом забывают… Это ваш ТЫНЦ.
Теперь понял. Дав этот тынц, я показал, что не только у меня есть эта проблема. Те аглицкие посты писал не я. Я там не зарегистрирован, потому сорцов не вижу.
А вы слышали о правах на папку? sudo как и su чутку «карму» портит
Прекрасно знаю. Вот я и подумал, что Лазарь пытался что-то пересобрать из компонентов, сорцы которых простой юзер может только читать, но не корректировать (и даже не всегда — компилировать и собирать). Вчера вот вносил правку в сорцы LazReport на линуксовой машине с Mint — их ведь без sudo не отредактируешь (исключение — работа под рутом в тех версиях пингвина, которые разрешают такие вещи).
- slyubez
- постоялец
- Сообщения: 149
- Зарегистрирован: 31.03.2015 08:44:07
Вернуться в Lazarus
Кто сейчас на конференции
Сейчас этот форум просматривают: Yandex [Bot] и гости: 43
I am using Free Pascal 2.6.4 32-bit on Windows 8.1. I want to use a TFileStream to copy a file.
program copy;
procedure CopyFile (strFilename : string);
var
SourceF, DestF : TFileStream;
begin
end;
begin
writeln('starting ');
end.
The compiler is not recognizing the TFileStream:
fpc copy_small.pas
Free Pascal Compiler version 2.6.4 [2014/03/06] for i386
Copyright (c) 1993-2014 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling copy_small.pas
copy_small.pas(5,33) Error: Identifier not found "TFileStream"
copy_small.pas(5,33) Error: Error in type definition
copy_small.pas(12) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:FPC2.6.4bini386-Win32ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)
The sample code I found on the web using TFileStream did not have a «uses» clause. Is there something that needs to be set on the command line or included in the program in order to use a TFileStream with Free Pascal?
asked Sep 21, 2014 at 0:53
7
TFileStream
lives in the Classes
unit, so your code should be
program copy;
// To use any 'non-system' functionality add necessary units here
uses
Classes;
procedure CopyFile (strFilename : string);
var
SourceF, DestF : TFileStream;
begin
end;
begin
writeln('starting ');
end.
answered Sep 21, 2014 at 6:23
AbelistoAbelisto
14.7k2 gold badges32 silver badges41 bronze badges
// Распознавание программы на простом языке. Распознаватель лексем (лексер)
{
Лексемы:
; := += -= *= id num begin end cycle
Ключевые слова:
begin end cycle
}
unit leksanalyz;
interface
// TLex - перечислимый тип - все лексемы грамматики
// lexEot - конец текста программы
type
Tok = (EOF, ID, INUM, COLON, SEMICOLON, ASSIGN, &BEGIN, &END, CYCLE);
var
fname: string; // Имя файла программы
LexRow,LexCol: integer; // Строка-столбец начала лексемы. Конец лексемы = LexCol+Length(LexText)
LexKind: Tok; // Тип лексемы
LexText: string; // Текст лексемы
LexValue: integer; // Целое значение, связанное с лексемой lexNum
procedure NextLexem;
procedure Init(fn: string);
procedure Done;
function TokToString(t: Tok): string;
implementation
var
ch: Char; // Текущий символ
f: text; // Текущий файл
row,col: integer; // Текущие строка и столбец в файле
KeywordsMap := new Dictionary<string,Tok>; // Словарь, сопоставляющий ключевым словам константы типа TLex. Инициализируется процедурой InitKeywords
procedure LexError(message: string); // ошибка лексического анализатора
begin
var ss := System.IO.File.ReadLines(fname).Skip(row-1).First(); // Строка row файла
writeln('Лексическая ошибка в строке ',row,':');
writeln(ss);
writeln('^':col-1);
if message<>'' then
writeln(message);
Done;
halt;
end;
procedure NextCh;
begin
// В LexText накапливается предыдущий символ и считывается следующий символ
LexText += ch;
if not f.Eof then
begin
read(f,ch);
if ch<>#10 then
col += 1
else
begin
row += 1;
col := 1;
end;
end
else
begin
ch := #0; // если достигнут конец файла, то возвращается #0
Done;
end;
end;
procedure PassSpaces;
begin
while char.IsWhiteSpace(ch) do
NextCh;
end;
procedure NextLexem;
begin
PassSpaces;
// R К этому моменту первый символ лексемы считан в ch
LexText := '';
LexRow := Row;
LexCol := Col;
// Тип лексемы определяется по ее первому символу
// Для каждой лексемы строится синтаксическая диаграмма
case ch of
';': begin
NextCh;
LexKind := Tok.SEMICOLON;
end;
':': begin
NextCh;
if ch<>'=' then
lexerror('= ожидалось');
NextCh;
LexKind := Tok.ASSIGN;
end;
'a'..'z': begin
while ch in ['a'..'z','0'..'9'] do
NextCh;
if KeywordsMap.ContainsKey(LexText) then
LexKind := KeywordsMap[LexText]
else LexKind := Tok.ID;
end;
'0'..'9': begin
while char.IsDigit(ch) do
NextCh;
LexValue := integer.Parse(LexText);
LexKind := Tok.INUM;
end;
#0: LexKind := Tok.EOF;
else lexerror('Неверный символ '+ch);
end;
end;
procedure InitKeywords;
begin
KeywordsMap['begin'] := Tok.&BEGIN;
KeywordsMap['end'] := Tok.&END;
KeywordsMap['cycle'] := Tok.CYCLE;
end;
procedure Init(fn: string);
begin
InitKeywords;
fname := fn;
AssignFile(f,fname);
reset(f);
row := 1; col := 1;
NextCh; // Считать первый символ в ch
NextLexem; // Считать первую лексему, заполнив LexText, LexKind и, возможно, LexValue
end;
procedure Done;
begin
close(f);
end;
function TokToString(t: Tok): string;
begin
Result := t.ToString;
case t of
Tok.ID: Result += ' ' + LexText;
Tok.INUM: Result += ' ' + LexValue;
end;
end;
end.
Почему при компиляции ошибка leksanalyz.pas(36,15) Fatal: Syntax error, «:» expected but «:=» found?
Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.
1 Invalid function number (Неправильный номер функции)
Была попытка неправильного вызова системной функции.
2 File not found (Файл не найден)
Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.
3 Path not found (Путь(директория) не найден)
Генерируется файловой системой когда путь не существует или неправелен.
Также генерируется при попытке получить доступ к несуществующему файлу.
4 Too many open files (Слишком много файлов открыто)
Максимальное число открытых файлов для вашего процесса было превышено.
Большинство операционных систем ограничивают максимальное число открытых файлов,
и эта ошибка может возникнуть когда этот лимит превышен.
5 File access denied (В доступе к файлу — отказано)
Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:
-
При попытке открыть файл, предназначенный только для чтения или в деиствительности являющиёся директорией, для записи.
-
В данный момент занят или заблокирован другим процессом.
-
При попытке создания файла или директории с именем, которое совпадает с именем уже созданного файла или директории.
-
При попытке чтения из файла, открытого только для записи.
-
При попытке записи в файл, открытый только для чтения.
-
При попытке удалить директорию или файл, когда это не возможно.
-
При неимении прав на доступ к данному файлу.
6 Invalid file handle (Неправильный хэндл файла)
Происходит, когда используемая Вами файловая переменная была обнулена (испорчена); Это говорит о том, что память вашей программы была повреждена.
12 Invalid file access code (Неправильные ключи доступа к файлу)
Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.
15 Invalid drive number (Неправильный номер диска)
Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.
16 Cannot remove current directory (Невозможно удалить текущую директорию)
Генерируется при попытке удалить текущую директорию.
17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)
Вы не можете переименовать файл в файл, находяшиёся на другом диске или в другом разделе.
100 Disk read error (Ошибка чтения с диска)
Генерируется при невозможности произвести чтение с диска. Обычно происходит при попытке чтения данных, после его окончания.
101 Disk write error (Ошибка записи на диск)
Генерируется когда Вы пытаетесь записать данные на переполненый диск.
102 File not assigned (Файл не определён)
Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.
103 File not open (Файл не открыт)
Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.
104 File not open for input (Файл не открыт для чтения)
Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.
105 File not open for output (Файл не открыт для записи)
Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.
106 Invalid numeric format(Неправильный числовой формат)
Генерируется когда ожидалось числовое значение, но из текстого файла было прочитано не было.
150 Disk is write-protected (Диск защищён от записи)
(Критическая ошибка)
151 Bad drive request struct length (Неправильная длина структуры запроса)
(Критическая ошибка)
152 Drive not ready (Устройство не готово)
(Критическая ошибка)
154 CRC error in data (Ошибка контрольной суммы в данных)
(Критическая ошибка)
156 Disk seek error (Ошибка низкоуровнего поиска на диске)
(Критическая ошибка)
157 Unknown media type (Неизвестный тип …)
(Критическая ошибка)
158 Sector Not Found (Сектор не найден)
(Критическая ошибка)
159 Printer out of paper (Нет бумаги в принтере)
(Критическая ошибка)
160 Device write fault (Сбой записи устройства)
(Критическая ошибка)
161 Device read fault (Сбой чтения устройства)
(Критическая ошибка)
162 Hardware failure (Сбой железа)
(Критическая ошибка)
200 Division by zero (Деление на ноль)
Приложение пыталось разделить число на ноль.
201 Range check error (Ошибка проверки границ)
Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:
-
Массив был вызван с индексом, выходящим за декларированые пределы.
-
Попытка присвоить значение переменной, выходящее за декларированые границы (для instance и enumerated типов).
202 Stack overflow error (Переполнение стека)
Стек превысил свой максимально допустимый размер (в этом случае необходимо уменьшить размер локальных переменных), или стек был повреждён. Эта ошибка генерируется только с включённой проверкой стека.
203 Heap overflow error (Переполнение кучи)
Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и
железом, то Вы получите эту ошибку.
204 Invalid pointer operation (Непрваильная операция с указателем)
Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)
205 Floating point overflow (Максимальная границы числа с плавающей точкой)
Вы попытались использовать или создать слишком большое число с плавающей точкой.
206 Floating point underflow (Минимальная граница числа с плавающей точкой)
Вы попытались использовать или создать слишком маленькое число с плавающей точкой.
207 Invalid floating point operation (Неправильная операция над числами с плавающей точкой)
Может генерироваться если вы попытались получить квадратный корень или логарифм отрицательного числа.
210 Object not initialized (Объект не инициализирован)
Если программа была скомпилирована с включенной проверкой границ, эта ошибка будет сгенерирована при попытке вызвать виртуальный метод до его конструктора.
211 Call to abstract method (Попытка вызова абстрактного метода)
Ваша программа попыталась вызвать абстрактный виртуальный метод. Абстрактные методы должны быть перекрыты, и только перекрытый метод должен быть вызван.
212 Stream registration error (Ошибка регистрации потока)
Генерируется когда неправильный тип регистрируется в модуле objects.
213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)
Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).
214 Collection overflow error (Переполнение коллекции)
Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).
215 Arithmetic overflow error (Арифметическое переполнение)
Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.
216 General Protection fault (GP Ошибка защиты памяти)
Приложение попыталось обратиться к недопустимому участку памяти. Это может быть вызвано следующими причинами:
-
Попытка получить разуказатель для nil.
-
Попытка получить доступ к выходящему за допустимые границы участку памяти (например, вызов move с неправильной длиной).
217 Unhandled exception occurred (Произошо неизвестное исключение)
Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.
219 Invalid typecast (Неправильное приведение типов)
Генерируется когда недопустимое приведение типов производится над классом используя оператор as. Эта ошибка также генерируется, когда объект или класс приводится к недопустимому объекту или классу, и виртуальный метод этого объекта или класса вызывается. Эта последняя ошибка детектируется только с использованием опции -CR компилятора.
227 Assertion failed error (Сбой утверждения)
Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.