Ошибки компилятора с 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