Четвертый Borland C++ и его окружение

       

- M -


Macro argument syntax error

Сообщение об ошибке этапа компиляции

(синтаксическая ошибка в аргументе макрокоманды)

Аргумент в определении макрокоманды должен являться идентификатором. Компилятор встретил некоторый символ, который не может

являться частью идентификатора, там, где ожидался аргумент.

Macro expansion too long

Сообщение об ошибке этапа компиляции

(слишком длинное макрорасширение)

Размер макрорасширения не может превышать 4096 символов.

Macro expansion too long

Сообщение об ошибке утилиты MAKE

(макрорасширение слишком велико)

Макроопределение не может расширяться более, чем на 4096



знаков. Такая ошибка часто появляется, если осуществляется регулярное макрорасширение. Макроопределение не может правильно

расширять самое себя.

Macro substitute text строка is too long

Фатальная ошибка утилиты MAKE

(строка текста макроподстановки слишком велика)

Текстовая строка макроподстановки переполняет внутренний буфер MAKE размером 512 байт.

Macro replace text строка is too long

Фатальная ошибка утилиты MAKE

(строка текста замены слишком велика)

Текстовая строка замены переполняет внутренний буфер MAKE

размером 512 байт.

main must have a return type of int

Сообщение об ошибке этапа компиляции

(функция main должна иметь тип возврата int)

К функции main предъявляются специальные требования. Одно из

них состоит в том, что она не может иметь тип возврата иной, нежели int.

Malformed command-line

Сообщение об ошибке этапа компиляции

(неверно сформированная командная строка)

В командной строке найдена недопустимая запись.

Matching base class function for функция has different dispatch number

Сообщение об ошибке этапа компиляции

(соответствующая функция базового класса для функции имеет

другой номер диспетчеризации)

Если в производном классе описывается виртуальная динамическая функция (DDVT), то соответствующая функция базового класса

должна иметь тот же номер диспетчеризации, что и производная

функция.

Matching base class function for функция is not dynamic




Сообщение об ошибке этапа компиляции

( соответствующая функция базового класса для функции не является динамической)

Если в производном классе описывается виртуальная динамическая функция (DDVT), то соответствующая функция базового класса

должна также быть динамической.

Maximum precision used for member pointer type тип

Предупреждение этапа компиляции

(для указателя-элемента типа тип используется максимальная

точность)

Если при описании типа указателя-элемента его класс описан

не полностью, и использован параметр -Vmd, компилятор должен использовать наиболее общее (и наименее эффективное) представление

для данного типа указателя-элемента. Это может привести не только

к генерации менее эффективного кода (и к получению большего чем

нужно элемента-указателя), но привести также к проблемам с раздельной компиляцией. См. описание параметра -Vm в Главе 4 "Компилятор, работающий в режиме командной строки" в "Руководстве пользователя".

Member function must be called or its address taked

Сообщение об ошибке этапа компиляции

(должна вызываться функция-элемент или получаться ее адрес)

Когда в выражении используется функция-элемент, то она

должна либо вызываться, либо нужно получать ее адрес с помощью

операции &. В этом случае функция-элемент используется в недопустимом контексте.

Member identifier expected

Сообщение об ошибке этапа компиляции

(требуется идентификатор элемента)

Здесь предполагается имя элемента или структуры С++, но оно

не найдено. Правая часть операции точки (.) или стрелки (->)

должна быть именем элемента структуры или класса, указанного в

левой части операции.

Member is ambiguous: элемент_1 and элемент_2

Сообщение об ошибке этапа компиляции

(неоднозначность элементов)

Вы должны уточнить ссылку на элемент с помощью соответствующего базового класса. В классе С++ класс элемент может встречаться более чем в одном базовом классе, и не было уточнено, что это

означает. Это применяется только при множественном наследовании,



когда имя элемента в каждом базовом классе не "скрывается" элементом с тем же именем в производном классе по тому же маршруту.

Правила языка С++ требуют, чтобы эта проверка не неоднозначность

выполнялась перед проверкой полномочий доступа (private, protected, public). Таким образом, можно получить данное сообщение, хотя доступен только один элемент (или ни одного).

Member элемент cannot be used without an object

Сообщение об ошибке этапа компиляции

(элемент "элемент" нельзя использовать без объекта)

Это означает, что пользователь записал класс::элемент, где

элемент - это обычный (не статический) элемент, и класс, связываемый с данным элементом, отсутствует. Например, допустима запись:

объект.класс::элемент, но не класс::элемент.

Member элемент has the same name as its class

Сообщение об ошибке этапа компиляции:

(элемент имеет то же имя, что и его класс)

Статический элемент данных, перечислитель, элемент неименованного объединения или вложенный тип не может иметь то же имя,

что и его класс. Имя, совпадающее с именем его класса, может

иметь только функция-элемент или нестатический элемент.

Member элемент is initialized more than once

Сообщение об ошибке этапа компиляции

(элемент инициализируется более одного раза)

В конструкторе класса С++, списке инициализации, следующем

за заголовком конструктора, одно и то же имя элемента указано

несколько раз.

Member pointer requires on right side of .* or ->*

Сообщение об ошибке этапа компиляции

(в правой части .* или ->* требуется указатель элемента)

Правая часть операций С++ .* или ->* должна описываться как

указатель на элемент класса, задаваемый левой частью операции. В

данном случае правая часть не является указателем элемента.

Memory full listing truncated!

Предупреждение утилиты TLIB

(полный листинг памяти усечен)

Библиотекарь исчерпал память при создании файла листинга

библиотеки. Файл будет создан, но он будет неполным.

Memory reference expected

Сообщение об ошибке этапа компиляции



(требуется ссылка на память)

Ассемблерный операнд не является ссылкой на память, которая

требуется в данном месте. Скорее всего, вы забыли заключить индексный регистр в квадратные скобки, например, MOV AX,BX+SI вместо MOV AX,[BX+SI].

Misplaced break

Сообщение об ошибке этапа компиляции

(неправильно расположен break)

Компилятор обнаружил оператор break вне конструкции оператора switch или цикла.

Misplaced continue

Сообщение об ошибке этапа компиляции

(неправильно расположен оператор continue)

Компилятор обнаружил оператор continue вне конструкции цикла.

Misplaced decimal point

Сообщение об ошибке этапа компиляции

(неправильно расположенная десятичная точка)

Компилятор обнаружил десятичную точку в показателе степени

константы с плавающей точкой.

Misplaced elif directive

Сообщение об ошибке этапа компиляции

(неправильно расположенная директива elif)

Компилятор обнаружил директиву #elif без соответствующей ей

директивы #if, #ifdef или #ifndef.

Misplaced elif statement

Сообщение об ошибке утилиты MAKE

(Оператор elif находится не на месте)

Директива !elif обнаружена без соответствующей ей директивы

!if.

Misplaced else

Сообщение об ошибке этапа компиляции

(Неправильно расположен оператор else)

Компилятор обнаружил оператор else без соответствующего ему

оператора if. Это сообщение может быть вызвано как лишним оператором else, так и лишней точкой с запятой, отсутствием фигурной

скобкой, либо некоторой синтаксической ошибкой в предыдущем операторе if.

Misplaced else directive

Сообщение об ошибке этапа компиляции

(Неправильно расположенная директива else)

Компилятор встретил директиву #else без соответствующей ей

директивы #if, #ifdef или #ifndef.

Misplaced else statement

Сообщение об ошибке утилиты MAKE

(Неверно помещен оператор else)

Обнаружена директива !else без соответствующей ей директивы

!if.

Misplaced endif directive

Сообщение об ошибке этапа компиляции

(Неправильно расположенная директива endif)

Компилятор встретил директиву #endif без соответствующей ей



директивы #if, #ifdef или #ifndef.

Misplaced endif statement

Сообщение об ошибке утилиты MAKE

(Неверно помещен оператор endif)

Была обнаружена директива ! endif без соответствующей ей директивы !if.

имя_файла(номер_строки): Missing internal name

Сообщение об ошибке утилиты TLINK

(пропущено внутреннее имя)

В секции IMPORTS файла определения модуля имеется ссылка на

запись, заданную с помощью имени модуля и порядкового значения.

Когда запись задается порядковым значением, определению импорта

нужно присвоить внутреннее имя. Это внутреннее имя, которое ваше

программа использует для ссылки на импортируемое определение. В

файле определения модуля должен использоваться следующий синтаксис:

<внутреннее_имя>=<имя_модуля>.<порядковое_значение>

Mixed common types in module модуль. Cannot mix COMDEFs and VIRDEFRs.

Сообщение об ошибке утилиты TLINK

(В модуле содержатся смешанные типы. COMDEF и VIRDEF смешивать не допускается.)

COMDEF и VIRDEF смешивать нельзя. Чтобы запретить генерацию

VIRDEF, включите параметр -Vs.

Mixing pointers to different 'char' types

Предупреждение этапа компиляции

(Смешанное использование указателей на char)

Вы преобразовали указатель на char в указатель на unsigned

char, либо наоборот без явного приведения типов. (Строго говоря,

это допустимо, но на процессоре 8086 часто приводит к ошибочным

результатам).

Multiple base classes require explicit class names

Сообщение об ошибке этапа компиляции

(Множественные базовые классы требуют явных имен классов)

В конструкторе класса С++ каждый вызов конструктора базового

класса в заголовке конструктора должен в случае, если имеется более одного непосредственного базового класса, включать имя базового класса.

Multiple declaration for идентификатор

Сообщение об ошибке этапа компиляции

(Множественное объявление идентификатора)

Идентификатор объявлен более одного раза, что недопустимо.

Это может произойти в случае противоречивых объявлений, например

int a; double a;, в случае, когда функция объявлена двумя разными



способами, либо при повторении некоторого объявления, не являющегося функцией extern или простой переменной.

Multiple entry points defined

Сообщение об ошибке утилиты TLINK

(определено несколько точек входа)

В приложении определено несколько точек входа. Допускается

только одна.

идентификатор must be a member function

Сообщение об ошибке этапа компиляции:

(идентификатор должен быть функцией-элементом)

Большинство функций-операций С++ может являться элементами

классов или обычными функциями, не входящими в класс, однако некоторые из них обязательно должны быть элементами класса. Это

функции operator =, operator ->, operator() и преобразования типов. Данная функция не является функцией-элементом, но должна являться таковой.

идентификатор must be a member function or have a parameter of class type

Сообщение об ошибке этапа компиляции

(идентификатор должен быть функцией-элементом или иметь аргумент типа класса)

Большинство функций-операций С++ должно иметь неявный или

явный аргумент типа класса. Данная функция-операция была объявлена вне класса и не имеет явного аргумента типа класса.

идентификатор must be a previously defined class or struct

Сообщение об ошибке этапа компиляции

(идентификатор должен быть ранее объявленным классом или

структурой)

Вы пытаетесь объявить идентификатор как базовый класс, тогда

как он либо не является классом, либо не был еще полностью определен. Исправьте имя или реорганизуйте объявления.

идентификатор must be a previoustly defined enumeration tag

Сообщение об ошибке этапа компиляции

(идентификатор должен быть ранее определенным тегом (признаком) перечислимого типа)

Данное объявление пытается обратиться к идентификатору, как

к тегу типа enum, тогда как он не был объявлен в качестве такового. Исправьте имя или реорганизуйте объявления.

функция must be declared with no parameters

Сообщение об ошибке этапа компиляции

(функция должна описываться без аргументов)

Данная функция-операция С++ была неправильно объявлена с аргументами.



операция must be declared with one or no parameters

Сообщение об ошибке этапа компиляции

(операция должна быть объявлена с одним параметром или без

них)

Когда operator++ или operator-- описывается, как функция-элемент, она должна описываться, как не имеющая параметров

(например, префиксная версия операции) или с одним параметром типа int (постфиксная версия).

операция must be declared with one or two parameters

Сообщение об ошибке этапа компиляции

(операция должна быть объявлена с одним или двумя аргументами)

Когда operator++ или operator-- описывается, как функция, не являющаяся элементом, она должна описываться с одним параметром (например, префиксная версия операции) или с двумя

параметрами (постфиксная версия).

функция must be declared with one parameter

Сообщение об ошибке этапа компиляции

(функция должна описываться с одним аргументом)

Данная функция-операция С++ была неправильно объявлена с более чем одним аргументом.

функция must be declared with one or no parameter

Сообщение об ошибке этапа компиляции

(функция должна описываться с одним аргументом или без аргументов)

Operator++ или operator-- были описаны как функция-элемент,

а они должны описываться без параметров или с одним параметром

типа int.

функция must be declared with one or two parameter

Сообщение об ошибке этапа компиляции

(функция должна описываться с одним аргументом двумя аргументами)

Данная функция С++ была неправильно объявлена.

Must take address of a memory location

Сообщение об ошибке этапа компиляции

(Необходимо получение адреса ячейки памяти)

Ваш исходный файл использовал операцию получения адреса (&)

в выражении, которое не может выполнять адресацию памяти, например, в случае регистровой переменной.


Содержание раздела