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


Ошибки компилятора с C3100 по C3199

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

Внимание

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

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

Примечание.

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

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

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

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

Ошибка Сообщение
Ошибка компилятора C3100 "identifier": неизвестный квалификатор атрибутов
Ошибка компилятора C3101 недопустимое выражение для именованного аргумента атрибута "идентификатор"
Ошибка компилятора C3102 Является устаревшей.
Ошибка компилятора C3103 "идентификатор": повторяющийся именованный аргумент
Ошибка компилятора C3104 недопустимый аргумент атрибута
Ошибка компилятора C3105 Символ: нельзя использовать в качестве атрибута.
Ошибка компилятора C3106 "attribute": неименованные аргументы должны предшествовать именованным аргументам
Ошибка компилятора C3107 "атрибут": нельзя определить функции-члены собственных атрибутов
Ошибка компилятора C3108 не может выводить тип в качестве списка инициализатора не является выражением
Ошибка компилятора C3109 "идентификатор": методы интерфейса должны использовать соглашение о вызовах "__stdcall" или "__cdecl".
Ошибка компилятора C3110 "function": нельзя перегружать метод COM-интерфейса
Ошибка компилятора C3111 Список инициализаторов нельзя использовать в качестве аргумента по умолчанию для параметра шаблона.
Ошибка компилятора C3112 Interface: интерфейс может быть объявлен только в глобальной или области пространства имен.
Ошибка компилятора C3113 interface/enum' не может быть шаблоном или универсальным
Ошибка компилятора C3114 "идентификатор": недопустимый аргумент именованного атрибута
Ошибка компилятора C3115 "атрибут": этот атрибут не допускается для "конструктора"
Ошибка компилятора C3116 "описатель": недопустимый класс хранилища для метода интерфейса
Ошибка компилятора C3117 Interface: интерфейс может иметь только один базовый класс.
Ошибка компилятора C3118 Интерфейсы не поддерживают виртуальное наследование
Ошибка компилятора C3119 Alignas(void) не допускается
Ошибка компилятора C3120 "идентификатор": методы интерфейса не могут принимать список аргументов переменной
Ошибка компилятора C3121 не удается изменить GUID для класса "class"
Ошибка компилятора C3122 "interface": универсальный интерфейс WinRT не может иметь GUID
Ошибка компилятора C3123 Универсальный интерфейс WinRT не может иметь ограничения
Ошибка компилятора C3124 "подписанный символ" не является допустимым типом данных WinRT. Вместо этого используйте "unsigned char", "wchar_t" или "подписанный short".
Ошибка компилятора C3125 "type": тип не может напрямую или косвенно наследоваться от "Platform::Exception"
Ошибка компилятора C3126 не может определить объединение "union" внутри типа managed/WinRT "type"
Ошибка компилятора C3127 Тип: признак "признак" можно использовать только в классе ссылок WinRT
Ошибка компилятора C3128 Тип не имеет vtable, который был представлен типом
Ошибка компилятора C3129 Type: __default_vptr_for_base можно использовать только в локально определенных полиморфных типах и базах.
Ошибка компилятора C3130 Внутренняя ошибка компилятора: не удалось записать внедренный блок кода в PDB
Ошибка компилятора C3131 у проекта должен быть атрибут module с свойством name
Ошибка компилятора C3132 "parameter": массивы параметров могут применяться только к формальному аргументу типа "одномерный управляемый массив/массив WinRT".
Ошибка компилятора C3133 Атрибуты не могут применяться к varargs C++
Ошибка компилятора C3134 "value": значение аргумента атрибута "аргумент" не имеет допустимого типа "type"
Ошибка компилятора C3135 "идентификатор": свойство не может иметь тип const или "volatile"
Ошибка компилятора C3136 "interface": COM-интерфейс может наследоваться только от другого COM-интерфейса, "интерфейс" не является COM-интерфейсом.
Ошибка компилятора C3137 "идентификатор": свойство не может быть инициализировано
Ошибка компилятора C3138 "идентификатор": интерфейс "атрибут" должен наследоваться от IDispatch или от интерфейса, наследуемого от IDispatch
Ошибка компилятора C3139 "type": не удается экспортировать определяемый пользователем тип без элементов
Ошибка компилятора C3140 Не может содержать несколько атрибутов module в одной единице компиляции
Ошибка компилятора C3141 "interface": интерфейсы поддерживают только общедоступное наследование
Ошибка компилятора C3142 "свойство": невозможно взять адрес свойства
Ошибка компилятора C3143 "argument": аргумент атрибута не может иметь несколько значений
Ошибка компилятора C3144 "атрибут": атрибут требует явных аргументов, "аргумент" не имеет имени
Ошибка компилятора C3145 "идентификатор": глобальная или статская переменная, возможно, не имеет управляемого или типа WinRT "type"
Ошибка компилятора C3146 Является устаревшей.
Ошибка компилятора C3147 Является устаревшей.
Ошибка компилятора C3148 Является устаревшей.
Ошибка компилятора C3149 "type": не удается использовать этот тип здесь без токена верхнего уровня.
Ошибка компилятора C3150 "конструктор": атрибут может применяться только к классу, структуре, интерфейсу, массиву или указателю
Ошибка компилятора C3151 Является устаревшей.
Ошибка компилятора C3152 Function: "keyword" может применяться только к классу, структуре или виртуальной функции-члену.
Ошибка компилятора C3153 "interface": невозможно создать экземпляр интерфейса
Ошибка компилятора C3154 Ожидается ", перед многоточием. Не запятые, разделенные многоточием, не поддерживаются в функциях массива параметров.
Ошибка компилятора C3155 Атрибуты не допускаются в индексаторе свойств
Ошибка компилятора C3156 "class": у вас не может быть локальное определение типа managed/WinRT
Ошибка компилятора C3157 Атрибут ParamArray можно применить только к последнему параметру
Ошибка компилятора C3158 Function: "keyword" может применяться только к виртуальной функции-члену.
Ошибка компилятора C3159 "идентификатор": массив указателей на тип значения не может быть объявлен
Ошибка компилятора C3160 "type": элемент данных управляемого или winRT класса не может иметь этот тип
Ошибка компилятора C3161 "interface": вложенный класс, структура или интерфейс в интерфейсе является незаконным; вложенный интерфейс в классе или структуре является незаконным
Ошибка компилятора C3162 "type": ссылочный тип, имеющий деструктор, нельзя использовать в качестве типа элемента статических данных "member"
Ошибка компилятора C3163 Class: атрибуты, несовместимые с предыдущим объявлением
Ошибка компилятора C3164 Является устаревшей.
Ошибка компилятора C3165 "value": не может преобразоваться в целочисленное или плавающее значение точки
Ошибка компилятора C3166 Является устаревшей. "type": член данных управляемого или winRT-класса не может иметь тип "pointer_type для внутренних managed_pointer_type".
Ошибка компилятора C3167 Не удается инициализировать платформа .NET Framework: убедитесь, что он установлен
Ошибка компилятора C3168 Type: недопустимый базовый тип для перечисления
Ошибка компилятора C3169 "type": не удается вывести тип для "auto" из "type"
Ошибка компилятора C3170 Не может иметь разные идентификаторы модуля в проекте
Ошибка компилятора C3171 Module: не удается указать различные атрибуты модуля в проекте
Ошибка компилятора C3172 "идентификатор": не удается указать разные атрибуты idl_module в проекте
Ошибка компилятора C3173 Несоответствие версий в слиянии idl
Ошибка компилятора C3174 Атрибут модуля не указан
Ошибка компилятора C3175 Function: не может вызывать метод управляемого типа из неуправляемой функции "function"
Ошибка компилятора C3176 "type": не может объявить локальный тип значения
Ошибка компилятора C3177 Вы не можете иметь функцию преобразования в тип, содержащий тип (устаревший в Visual Studio 2022.)
Ошибка компилятора C3178 Type: не удается использовать ParamArray в функции с аргументами по умолчанию (устаревшее в Visual Studio 2022.)
Ошибка компилятора C3179 Тип неназванного управляемого или WinRT не допускается
Ошибка компилятора C3180 "type": имя превышает предел метаданных символов "число"
Ошибка компилятора C3181 "type": недопустимый операнд для оператора
Ошибка компилятора C3182 "type": элемент с использованием объявления или объявления доступа является незаконным в пределах управляемого или winRT типа
Ошибка компилятора C3183 не может определить неназванный класс, структуру или объединение внутри типа Managed/WinRT "class"
Ошибка компилятора C3184 Является устаревшей.
Ошибка компилятора C3185 "typeid": используется для типа managed/WinRT "type", вместо этого используйте "operator"
Ошибка компилятора C3186 Является устаревшей.
Ошибка компилятора C3187 "идентификатор": доступен только в тексте функции
Ошибка компилятора C3188 Является устаревшей.
Ошибка компилятора C3189 'typeid<декларатор>': этот синтаксис больше не поддерживается, вместо него используется::typeid (устаревшее в Visual Studio 2022.)
Ошибка компилятора C3190 "декларатор" с указанными аргументами шаблона не является явным экземпляром любой функции-члена типа
Ошибка компилятора C3191 Является устаревшей.
Ошибка компилятора C3192 синтаксическая ошибка: "^" не является оператором префикса (означает ли вы "*"?)
Ошибка компилятора C3193 "конструктор": требуется параметр командной строки "/clr" или "/ZW"
Ошибка компилятора C3194 "type": тип значения не может иметь оператор назначения
Ошибка компилятора C3195 "ключевое слово": зарезервировано и не может использоваться в качестве члена класса ссылок или типа значения. Операторы CLR/WinRT должны быть определены с помощью ключевого слова "operator"
Ошибка компилятора C3196 "идентификатор": используется несколько раз
Ошибка компилятора C3197 "ключевое слово": можно использовать только в определениях
Ошибка компилятора C3198 недопустимое использование pragmas с плавающей запятой: fenv_access pragma работает только в точном режиме.
Ошибка компилятора C3199 недопустимое использование pragmas с плавающей запятой: исключения не поддерживаются в неточном режиме.

См. также

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