Поделиться через


Ошибки компилятора с C3300 по C3399

В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.

Внимание

Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.

Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.

Примечание.

Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.

Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .

Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.

Сообщения об ошибках

Ошибка Сообщение
Ошибка компилятора C3300 Символ: неправильный формат для IDL "value"
Ошибка компилятора C3301 "coclass": coclass не может быть интерфейсом "символ"
Ошибка компилятора C3302 "идентификатор": идентификатор имеет больше символов чисел
Ошибка компилятора C3303 "атрибут": атрибут можно использовать только для типа
Ошибка компилятора C3304 Является устаревшей.
Ошибка компилятора C3305 Является устаревшей.
Ошибка компилятора C3306 "template": неименованный шаблон класса или универсальный не допускается
Ошибка компилятора C3307 Модуль: не удается создать модуль IDL
Ошибка компилятора C3308 "function": прямой вызов через импортированный класс не поддерживается
Ошибка компилятора C3309 "ключевое слово макроса/": имя модуля не может быть макросом или ключевым словом
Ошибка компилятора C3310 "идентификатор": конфликт имени модуля
Ошибка компилятора C3311 Атрибут модуля должен быть определен в глобальной области
Ошибка компилятора C3312 вызываемая функция "идентификатор" не найдена для типа "type"
Ошибка компилятора C3313 "идентификатор": переменная не может иметь тип "type"
Ошибка компилятора C3314 "symbol": не поддерживаемый тип модуля IDL
Ошибка компилятора C3315 "function": должен быть функцией-членом
Ошибка компилятора C3316 Type: массив неизвестного размера нельзя использовать в операторе на основе диапазона.
Ошибка компилятора C3317 "идентификатор": функция перегрузки не может использоваться в качестве выражения в диапазоне для инструкции
Ошибка компилятора C33181 "type": массив не может иметь тип элемента, содержащий "auto"
Ошибка компилятора C3319 Является устаревшей.
Ошибка компилятора C3320 "type": тип не может иметь то же имя, что и свойство "name" модуля
Ошибка компилятора C3321 Список инициализатора непредвиден в этом контексте
Ошибка компилятора C3322 "свойство": недопустимое свойство атрибута "атрибут"
Ошибка компилятора C3323 "alignas" и "__declspec(align)" не допускаются для объявлений функций
Ошибка компилятора C3324 "property": свойство происходит несколько раз в атрибуте "атрибут"
Ошибка компилятора C3325 "атрибут": атрибут имеет слишком много аргументов
Ошибка компилятора C3326 "value": не является допустимым значением свойства "свойство" атрибута "атрибут"
Ошибка компилятора C3327 Property: должен указывать значение для свойства атрибута "атрибут"
Ошибка компилятора C3328 "атрибут": атрибут не имеет достаточно аргументов
Ошибка компилятора C3329 синтаксическая ошибка: ожидаемое значение token1 не "token2"
Ошибка компилятора C3330 " function": функция не может возвращать массив "type"
Ошибка компилятора C3331 "идентификатор": атрибуты для параметров разрешены только в COM-интерфейсах и соклассах
Ошибка компилятора C3332 "свойство": грамматика несогласованна, свойство "свойство" является обязательным и имеет значение по умолчанию
Ошибка компилятора C3333 "library": не удается #import поврежденной библиотеке типов
Ошибка компилятора C3334 директива #import не может быть выполнена для поврежденной библиотеки типов
Ошибка компилятора C3335 "идентификатор": существует не более одного интерфейса по умолчанию для сокласса "class"
Ошибка компилятора C3336 Эта операция должна выполняться в области класса
Ошибка компилятора C3337 "identifier": defaultvtable должен быть источником событий для класса "class"
Ошибка компилятора C3338 "идентификатор": может быть не более одного интерфейса по умолчанию, который также является источником событий для класса "класс"
Ошибка компилятора C3339 Параметр шаблона требует "class" или "typename" после списка параметров
Ошибка компилятора C3340 "идентификатор": интерфейс не может быть "ограниченным" и "по умолчанию" в coclass "class"
Ошибка компилятора C3341 "interface": интерфейс по умолчанию должен быть "двойным" или "настраиваемым"
Ошибка компилятора C3342 "идентификатор": неоднозначный атрибут
Ошибка компилятора C3343 "class::name": идентификатор атрибута имеет слишком много символов
Ошибка компилятора C3344 Не удается определить явную специализацию или частичную специализацию символа.
Ошибка компилятора C3345 "name": недопустимый идентификатор для имени модуля
Ошибка компилятора C3346 экспортируемое объявление в области, отличной от пространства имен
Ошибка компилятора C3347 "argument": обязательный аргумент не указан в имени атрибута
Ошибка компилятора C3348 Экспортированные шаблоны не являются частью текущих стандартов C++
Ошибка компилятора C3349 "class::member": атрибут многоадресной рассылки уже реализован с помощью имени поставщика
Ошибка компилятора C3350 "function": конструктор делегата ожидает аргументы числа
Ошибка компилятора C3351 Функция: при передаче экземпляра объекта NULL конструктору делегата также необходимо передать адрес статической функции-члена.
Ошибка компилятора C3352 "function": указанная функция не соответствует типу делегата "type"
Ошибка компилятора C3353 "идентификатор": делегат может быть создан только из глобальной функции или функции-члена управляемого или winRT типа
Ошибка компилятора C3354 "идентификатор": функция, используемая для создания делегата, не может иметь тип возвращаемого типа "type"
Ошибка компилятора C3355 Class::member: атрибут многоадресной рассылки прослушивает поставщик "provider1", но реализуется поставщиком "provider2"
Ошибка компилятора C3356 "идентификатор": не удается вызвать атрибут многоадресной рассылки с полным именем
Ошибка компилятора C3357 "attribute": атрибут неоднозначный, должен использовать полное имя
Ошибка компилятора C3358 Символ: символ не найден
Ошибка компилятора C3359 "специализация": не удается специализировать шаблон
Ошибка компилятора C3360 String: не удается создать имя
Ошибка компилятора C3361 Нет контекста, в котором нужно выполнить действие
Ошибка компилятора C3362 Class::member: атрибут многоадресной рассылки не реализован
Ошибка компилятора C3363 "identifier": "typeid" может применяться только к типу
Ошибка компилятора C3364 'function': недопустимый аргумент для конструктора делегата; целевой объект делегата должен быть указателем на функцию-член
Ошибка компилятора C3365 оператор "operator": отличаются операнды типа "тип" и "тип"
Ошибка компилятора C3366 Member: статические элементы данных управляемых и WinRT типов должны быть определены в определении класса.
Ошибка компилятора C3367 ' function': не удается использовать статическую функцию для создания несвязанного делегата
Ошибка компилятора C3368 "декларатор": недопустимое соглашение о вызове для IDL
Ошибка компилятора C3369 "module": idl_module уже определен
Ошибка компилятора C3370 "module": idl_module еще не определен
Ошибка компилятора C3371 idl_module: здесь допускается только свойство "name"
Ошибка компилятора C3372 должен указать по крайней мере 1 интерфейс атрибута "атрибут" в coclass
Ошибка компилятора C3373 атрибут "атрибут" не принимает аргументов, кроме coclass
Ошибка компилятора C3374 не может принимать адрес функции, если только не создание экземпляра делегата
Ошибка компилятора C3375 "function": неоднозначная функция делегата
Ошибка компилятора C3376 "template": разрешены только статические шаблоны элементов данных
Ошибка компилятора C3377 "decltype(auto)" не допускается в новом выражении (устаревшее в Visual Studio 2022.)
Ошибка компилятора C3378 Объявление можно экспортировать только из единицы интерфейса модуля.
Ошибка компилятора C3379 "class": вложенный класс не может иметь описатель доступа к сборке в рамках объявления.
Ошибка компилятора C3380 "описатель": недопустимый описатель доступа к сборке — разрешены только "public" или "private"
Ошибка компилятора C3381 "описатель": описатели доступа к сборке доступны только в коде, скомпилированном с параметром /clr
Ошибка компилятора C3382 sizeof при использовании параметра /clr:safe не поддерживается
Ошибка компилятора C3383 operator new при использовании параметра /clr:safe не поддерживается
Ошибка компилятора C3384 "type": ограничение значения и ограничение ссылок являются взаимоисключающими
Ошибка компилятора C3385 "function": функция, которая имеет настраиваемый атрибут DllImport, не может возвращать экземпляр класса
Ошибка компилятора C3386 "type": нельзя применить __declspec(dllexport)/__declspec(dllimport) к типу managed/WinRT
Ошибка компилятора C3387 Member: не удается применить __declspec(dllexport)/__declspec(dllimport) к члену управляемого/типа WinRT.
Ошибка компилятора C3388 "token": не допускается в качестве ограничения, при условии, что "value" продолжит синтаксический анализ
Ошибка компилятора C3389 __declspec(описатель) нельзя использовать с /clr:pure или /clr:safe
Ошибка компилятора C3390 "type": недопустимый аргумент типа для универсального параметра "параметр" универсального типа "generic_type", должен быть ссылочным типом
Ошибка компилятора C3391 "type": недопустимый аргумент типа для универсального параметра "параметр" универсального "generic_type", должен быть типом значения, не допускающего значения NULL.
Ошибка компилятора C3392 "type": недопустимый аргумент типа для универсального параметра "параметр" универсального "generic_type", должен иметь открытый конструктор без параметров
Ошибка компилятора C3393 синтаксическая ошибка в предложении ограничения: "идентификатор" не является типом
Ошибка компилятора C3394 синтаксическая ошибка в предложении ограничения: найдено "символ" ожидается тип
Ошибка компилятора C3395 'function' : __declspec(dllexport) нельзя применить к функции с соглашением о вызовах __clrcall
Ошибка компилятора C3396 Класс.member:custom attribute not found in 'namespace' (Пространство имен)
Ошибка компилятора C3397 Агрегатная инициализация не допускается в аргументах по умолчанию
Ошибка компилятора C3398 Оператор: не удается преобразовать из типа в тип. Исходное выражение должно являться символом функции
Ошибка компилятора C3399 "type": не удается указать аргументы при создании экземпляра универсального параметра

1-Больше не создается в Visual Studio 2022 версии 17.11

См. также

Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999