Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может устранить несколько последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструментам и типам в оглавлении на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице и думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам, используя кнопки обратной связи на этой странице. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите Справка > Отправить отзыв > Сообщить о проблемеили отправить предложение с помощью Справка > Отправить отзыв > Предложить функцию. Некоторые темы ошибок компилятора были созданы, которые не эмитируются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Q&A C++. Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения на Stack Overflow.
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
| Ошибка | Сообщение |
|---|---|
| Ошибка компилятора C2200 | "function": функция уже определена |
| Ошибка компилятора C2201 | "идентификатор": должен иметь внешнее связывание, чтобы быть экспортированным/импортированным" |
| Ошибка компилятора C2202 | Function: не все пути управления возвращают значение |
| Ошибка компилятора C2203 | Оператор delete не может указать границы для массива |
| Ошибка компилятора C2204 | "type": определение типа, найденное в скобках |
| Ошибка компилятора C2205 | "идентификатор": не удается инициализировать внешние переменные с блочной областью видимости |
| Ошибка компилятора C2206 | "function": typedef нельзя использовать для определения функции |
| Ошибка компилятора C2207 | "member": член шаблона класса не может получить тип функции |
| Ошибка компилятора C2208 | "type": элементы, определенные с помощью этого типа, не определены |
| Ошибка компилятора C2209 | "identifier": псевдонимы не могут использоваться в объявлениях конструктора |
| Ошибка компилятора C2210 | "идентификатор": расширения пакетов нельзя использовать в качестве аргументов для непакетных параметров в шаблонах псевдонимов |
| Ошибка компилятора C2211 | Не-виртуальный деструктор в ref классе, производном от ref класса с публичным деструктором, также должен быть публичным. |
| Ошибка компилятора C2212 | "идентификатор": __based недоступен для указателей на функции |
| Ошибка компилятора C2213 | "идентификатор": недопустимый аргумент для __based |
| Ошибка компилятора C2214 | Указатели на основе "void" требуют использования:> |
| Ошибка компилятора C2215 | "ключевое слово" нельзя использовать с "/arch:SSE" |
| Ошибка компилятора C2216 | "keyword1" нельзя использовать с "keyword2" |
| Ошибка компилятора C2217 | Для атрибута1 требуется атрибут2. |
| Ошибка компилятора C2218 | "calltype" нельзя использовать с "/arch:IA32" |
| Ошибка компилятора C2219 | ошибка синтаксиса: квалификатор типа должен быть после "*" |
| Ошибка компилятора C2220 | Следующее предупреждение рассматривается как ошибка |
| Ошибка компилятора C2221 | Является устаревшей. |
| Ошибка компилятора C22222 | неожиданный тип "type": ожидался базовый класс или член |
| Ошибка компилятора C2223 | слева от "->identifier" должен указывать на структуру или объединение |
| Ошибка компилятора C2224 | Слева от '.идентификатор' должен быть тип структуры или объединения. |
| Ошибка компилятора C2225 | Является устаревшей. |
| Ошибка компилятора C2226 | синтаксическая ошибка: непредвиденный тип "type" |
| Ошибка компилятора C2227 | слева от "->identifier" должен указывать на класс/структуру/объединение/универсальный тип |
| Ошибка компилятора C2228 | слева от '.идентификатор должен иметь класс/структуру/объединение |
| Ошибка компилятора C2229 | class/struct/union "type" имеет недопустимый массив нулевого размера |
| Ошибка компилятора C2230 | не удалось найти модуль "name" |
| Ошибка компилятора C2231 | '.идентификатор: левый операнд указывает на "class/struct/union", используйте "->" |
| Ошибка компилятора C2232 | "->identifier": левый операнд имеет тип "class/struct/union", используйте "". |
| Ошибка компилятора C2233 | "идентификатор": массивы объектов, содержащих массивы нулевого размера, являются незаконными |
| Ошибка компилятора C2234 | идентификатор: массивы ссылок недопустимы |
| Ошибка компилятора C2235 | Несоответствие целевой архитектуры для скомпилированного интерфейса модуля для архитектуры1из архитектуры2 |
| Ошибка компилятора C2236 | неожиданный токен "token". Возможно, вы забыли «;»? |
| Ошибка компилятора C2237 | Объявление нескольких модулей |
| Ошибка компилятора C2238 | неожиданные маркеры, предшествующие "токену" |
| Ошибка компилятора C2239 | 'Функция': попытка удалить функцию __declspec(dllexport) |
| Ошибка компилятора C2240 | Является устаревшей. |
| Ошибка компилятора C2241 | "идентификатор": доступ к члену ограничен |
| Ошибка компилятора C2242 | имя typedef не может следовать за классом, структурой или объединением |
| Ошибка компилятора C2243 | "conversion_type": преобразование из "type1" в "type2" существует, но недоступно |
| Ошибка компилятора C2244 | "идентификатор": не удается сопоставить определение функции с существующим объявлением |
| Ошибка компилятора C2245 | Несуществующая функция-член 'function', указанная как дружественная (сигнатура функции-члена не соответствует ни одной из перегрузок) |
| Ошибка компилятора C2246 | "идентификатор": недопустимый статический элемент данных в локально определенном классе |
| Ошибка компилятора C2247 | "'идентификатор' недоступен, потому что 'класс1' использует 'спецификатор' для наследования от 'класса2'." |
| Ошибка компилятора C2248 | "идентификатор": не удается получить доступ к доступностичлену, объявленному в классе "класс" |
| Ошибка компилятора C2249 | "идентификатор": нет доступного пути к элементу доступностичлен, объявленному в виртуальной базе "класс" |
| Ошибка компилятора C2250 | "идентификатор": неоднозначное наследование класса::member |
| Ошибка компилятора C2251 | Пространство имен 'namespace' не содержит элемента 'identifier' - Вы имели в виду 'member'? |
| Ошибка компилятора C2252 | Явное создание экземпляра шаблона может происходить только в области пространства имен |
| Ошибка компилятора C2253 | "function": чистый спецификатор или абстрактный спецификатор переопределения разрешены только для виртуальной функции |
| Ошибка компилятора C2254 | "function": чистый спецификатор или абстрактный спецификатор переопределения не разрешен для функции friend |
| Ошибка компилятора C2255 | Элемент: не допускается вне определения класса |
| Ошибка компилятора C2256 | незаконное использование дружественного спецификатора на 'функцию' |
| Ошибка компилятора C2257 | "спецификатор": спецификатор не разрешен в располагаемом типе возвращаемого значения |
| Ошибка компилятора C2258 | недопустимый строгий синтаксис, требуется "= 0" |
| Ошибка компилятора C2259 | Class: не удается создать экземпляр абстрактного класса |
| Ошибка компилятора C2260 | "спецификатор": недопустимый спецификатор дружественной сборки InternalsVisibleToAttribute |
| Ошибка компилятора C2261 | "string": ссылка на сборку неверна и не может быть исправлена |
| Ошибка компилятора C2262 | "спецификатор": объявления InternalsVisibleTo не могут иметь версию, культуру или архитектуру процессора. |
| Ошибка компилятора C2263 | "имя модуля": единица трансляции не может импортироваться в саму себя |
| Ошибка компилятора C2264 | "function": ошибка в определении или объявлении функции; функция не вызывается |
| Ошибка компилятора C2265 | Является устаревшей. |
| Ошибка компилятора C2266 | "идентификатор": ссылка на неконстантный ограничивающий массив является незаконным |
| Ошибка компилятора C2267 | "function": статические функции с областью блокировки являются незаконными |
| Ошибка компилятора C2268 | Функция — это предопределенное библиотечное вспомогательное средство компилятора. Вспомогательные средства библиотеки не поддерживаются с /GL; скомпилируйте файл объекта filename без /GL. |
| Ошибка компилятора C2269 | не может создать указатель или ссылку на квалифицированный тип функции (требуется указатель на член) |
| Ошибка компилятора C2270 | "function": модификаторы не разрешены для функций nonmember |
| Ошибка компилятора C2271 | "function": new/delete не может иметь формальные модификаторы списка |
| Ошибка компилятора C2272 | "function": модификаторы не разрешены для статических функций-членов |
| Ошибка компилятора C2273 | "type": недопустимый в правой части оператора "->" |
| Ошибка компилятора C2274 | "type": недопустимо использовать в правой части оператора "." |
| Ошибка компилятора C2275 | 'тип': ожидается выражение вместо типа |
| Ошибка компилятора C2276 | Оператор: недопустимая операция над выражением привязанной функции-члена |
| Ошибка компилятора C2277 | Function: не может принимать адрес этой функции-члена. |
| Ошибка компилятора C2278 | "токен": непредвиденный токен. Формат : "__has_cpp_attribute( identifier )' |
| Ошибка компилятора C2279 | Спецификация исключения не может отображаться в объявлении typedef |
| Ошибка компилятора C2280 | Class::function: попытка ссылаться на удаленную функцию |
| Ошибка компилятора C2281 | Класс |
| Ошибка компилятора C2282 | 'Функция1' не может переопределить 'Функция2' |
| Ошибка компилятора C2283 | 'идентификатор': чистый спецификатор или абстрактный спецификатор переопределения не разрешен в неназванной структуре |
| Ошибка компилятора C2284 | 'function': недопустимый аргумент для встроенной функции, параметр номер |
| Ошибка компилятора C2285 | Указатели на представление элементов уже определены - pragma игнорируется |
| Ошибка компилятора C2286 | Указатели на элементы представления "идентификатор" уже заданы для наследования - объявление игнорируется |
| Ошибка компилятора C2287 | "идентификатор": представление наследования: "наследование" менее общее, чем необходимое "наследование" |
| Ошибка компилятора C2288 | препроцессирование числа "число" не является допустимым целым числом или плавающим литералом |
| Ошибка компилятора C2289 | Множественное использование одного и того же квалификатора типа |
| Ошибка компилятора C2290 | Синтаксис C++ "asm" игнорируется. Используйте __asm. |
| Ошибка компилятора C2291 | Невозможно экспортировать анонимное пространство имен. |
| Ошибка компилятора C2292 | "идентификатор": в идеальном случае представление наследования: наследование1 объявлено, но "наследование2" требуется" |
| Ошибка компилятора C2293 | "идентификатор": недопустимо иметь переменную-член в качестве описателя __based |
| Ошибка компилятора C2294 | не может экспортировать символ "идентификатор", так как он имеет внутреннее связывание |
| Ошибка компилятора C2295 | Escaped "символ": является незаконным в определении макроса |
| Ошибка компилятора C2296 | Недопустимый оператор, левый операнд имеет тип "type" |
| Ошибка компилятора C2297 | "оператор": недопустимый, правый операнд имеет тип "type" |
| Ошибка компилятора C2298 | Отсутствующий вызов привязки указателя к функции-члену |
| Ошибка компилятора C2299 | "function": изменение поведения: явная специализация не может быть конструктором копирования или оператором назначения копирования |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2001 — C3999, C7000 — C7999