本文档部分提到的文章解释了编译器生成的一部分错误消息。
重要
Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修复程序可以解决多个后续错误。
若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。
注意
并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果登录此页面并认为错误或警告消息需要其他说明,请使用此页面上的反馈按钮告知我们。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择 帮助 > 发送反馈 > 报告问题,或使用 帮助 > 发送反馈 > 建议功能提交建议。 创建了一些编译程序错误主题,这些主题不是由编译程序发出的,但现在会重定向到此页面。
可以在 Microsoft Q&A C++ 论坛中找到有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。
有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区。
错误消息
错误 | Message |
---|---|
编译器错误 C2200 | “function”:函数已被定义 |
编译器错误 C2201 | “identifier”:必须具有外部连接才能进行导出/导入 |
编译器错误 C2202 | “function”:不是所有的控件路径都返回值 |
编译器错误 C2203 | 删除运算符无法指定数组的边界 |
编译器错误 C2204 | “type”:括号中找到的类型定义 |
编译器错误 C2205 | “identifier”:无法使用块范围初始化外部变量 |
编译器错误 C2206 | “function”:typedef 不能用于函数定义 |
编译器错误 C2207 | “member”:类模板的成员无法获取函数类型 |
编译器错误 C2208 | type: 没有使用此类型定义的成员 |
编译器错误 C2209 | identifier:别名无法用于构造函数声明中 |
编译器错误 C2210 | “identifier”:包扩展不能用作别名模板中非打包参数的参数。 |
编译器错误 C2211 | ref 类中使用公共析构函数从 ref 类派生得到的非虚拟解析函数必须也是公共析构函数 |
编译器错误 C2212 | “标识符”:__based 不可用于指向函数的指针 |
编译器错误 C2213 | “标识符”:__based 的非法参数 |
编译器错误 C2214 | 基于“void”的指针要求使用:> |
Compiler error C2215 | “keyword”不能和“/arch:SSE”一起使用 |
编译器错误 C2216 | “keyword1”不能和“keyword2”一起使用 |
编译器错误 C2217 | “attribute1” 需要 “attribute2” |
编译器错误 C2218 | “calltype”不能和“/arch:IA32”一起使用 |
编译器错误 C2219 | 语法错误:类型限定符必须在“*”之后 |
编译器错误 C2220 | 以下警告被视为错误 |
编译器错误 C2221 | 已过时。 |
编译器错误 C2222 | 意外类型“type”:应为基类或成员 |
编译器错误 C2223 | “->identifier”的左侧必须指向结构/联合 |
编译器错误 C2224 | “.identifier”的左边必须有/结构/联合类型 |
编译器错误 C2225 | 已过时。 |
编译器错误 C2226 | 语法错误:意外的“type”类型 |
编译器错误 C2227 | "->identifier" 的左侧必须指向类/结构/联合/泛型类型 |
编译器错误 C2228 | “.identifier”的左边必须有类/结构/联合 |
编译器错误 C2229 | 类/结构/联合“type”具有非法的零大小数组 |
编译器错误 C2230 | 无法找到模块“name” |
编译器错误 C2231 | “.identifier”:左操作数指向“类/结构/共用体”,使用“->” |
编译器错误 C2232 | “->identifier”:左操作数具有“类/结构/联合”类型,使用“.” |
编译器错误 C2233 | identifier: 包含零大小数组的对象数组是无效的 |
编译器错误 C2234 | “identifier”:引用用数组是非法的 |
编译器错误 C2235 | “体系结构 1”和“体系结构 2”编译模块接口的目标架构不匹配 |
编译器错误 C2236 | 意外的标记“token”。 你是不是忘了加';'? |
编译器错误 C2237 | 多个模块声明 |
编译器错误 C2238 | “token”前有意外的标记 |
编译器错误 C2239 | function:尝试删除 __declspec(dllexport) 函数 |
Compiler error C2240 | 已过时。 |
编译器错误 C2241 | “identifier”:成员访问受限制 |
编译器错误 C2242 | typedef 名不能位于类/结构/联合之后 |
编译器错误 C2243 | ‘conversion_type’从‘type1’到‘type2’的转换存在,但无法访问。 |
编译器错误 C2244 | “identifier”:无法将函数定义与现有的声明匹配 |
编译器错误 C2245 | 将不存在的成员函数“function”指定为友元)成员函数签名与所有重载都不匹配) |
编译器错误 C2246 | “identifier”:在局部定义的类中为非法的静态数据成员 |
编译器错误 C2247 | “identifier”不可访问,因为“class1”使用“说明符”从“class2”继承 |
编译器错误 C2248 | “identifier”:无法访问类“class”中声明的辅助功能“member” |
编译器错误 C2249 | “identifier”:虚拟基类“class”中声明的辅助功能“member”没有可访问的路径 |
编译器错误 C2250 | “identifier”:“class::member”的不明确继承 |
编译器错误 C2251 | 命名空间“namespace”没有成员“identifier” - 您是指“member”吗? |
编译器错误 C2252 | 模板的显式实例化只能出现在命名空间范围内。 |
编译器错误 C2253 | “function”:纯说明符或抽象重写说明符只允许在虚函数上使用 |
编译器错误 C2254 | “function”:纯说明符或抽象重写说明符不允许在友元函数上使用 |
编译器错误 C2255 | “element”:不允许位于类定义之外 |
编译器错误 C2256 | 在“function”上非法使用友元说明符 |
编译器错误 C2257 | “specifier”:结尾返回类型中不允许出现说明符 |
编译器错误 C2258 | 非法的纯语法,必须为“= 0” |
编译器错误 C2259 | “class”:无法实例化抽象类 |
编译器错误 C2260 | “specifier”:无效的 InternalsVisibleToAttribute 友元程序集说明符 |
编译器错误 C2261 | “string”:程序集引用无效且无法解析 |
编译器错误 C2262 | “specifier”:不能为 InternalsVisibleTo 声明指定版本、区域性或处理器体系结构 |
编译器错误 C2263 | “模块名称”:无法将翻译单元导入到自身 |
编译器错误 C2264 | “function”:函数定义或声明中有错误;未调用函数 |
编译器错误 C2265 | 已过时。 |
编译器错误 C2266 | “identifier”:对非常量绑定数组的引用非法 |
编译器错误 C2267 | “function”:具有块范围的静态函数非法 |
编译器错误 C2268 | “function”是编译器预定义的库帮助程序。 不支持与 /GL 一起使用库助手;编译对象文件 filename 时不要使用 /GL。 |
编译器错误 C2269 | 无法创建指向限定函数类型的指针或引用(需要指向成员的指针) |
编译器错误 C2270 | “function”:非成员函数不允许使用修饰符 |
编译器错误 C2271 | “function”:new/delete 不能有形式表修饰符 |
编译器错误 C2272 | “function”:静态成员函数上不允许使用修饰符 |
编译器错误 C2273 | “type”:位于“->”运算符右边时非法 |
编译器错误 C2274 | “type”:位于“.”运算符右边时非法 |
编译器错误 C2275 | “type”:应该是表达式而不是类型 |
编译器错误 C2276 | “operator”:对绑定成员函数表达式的非法操作 |
编译器错误 C2277 | “function”:无法获取该成员函数的地址 |
编译器错误 C2278 | “token”:意外的标记 格式为“__has_cpp_attribute( identifier ) ” |
编译器错误 C2279 | 异常规范不能出现在 typedef 声明中 |
编译器错误 C2280 | class::function:尝试引用已删除的函数 |
编译器错误 C2281 | “class::function”:只能在第一个声明中删除函数 |
编译器错误 C2282 | “function1”不能重写“function2” |
编译器错误 C2283 | “标识符”:不允许对未命名结构使用纯说明符或抽象重写说明符 |
编译器错误 C2284 | “function”:内部函数的非法自变量,参数“number” |
编译器错误 C2285 | 指向成员表示形式的指针已确定 - 忽略 pragma |
编译器错误 C2286 | 指向“identifier”表示形式的成员的指针已设置为“inheritance” - 声明已忽略 |
编译器错误 C2287 | “identifier”:继承表示形式:“inheritiance”比所需的“inheritance”更常规 |
编译器错误 C2288 | 预处理数字“数字”不是有效的整数或浮动文本 |
编译器错误 C2289 | 多次使用同一类型限定符 |
编译器错误 C2290 | 忽略 C++“asm”语法。 使用__asm。 |
编译器错误 C2291 | 无法导出匿名命名空间。 |
编译器错误 C2292 | “标识符”:最佳继承表示形式:已声明“继承1”,但需要“继承2” |
编译器错误 C2293 | “identifier”:使成员变量作为 __based 说明符非法 |
编译器错误 C2294 | 无法导出符号“identifier”,因为它具有内部链接 |
编译器错误 C2295 | 转义的“character”:在宏定义中非法 |
编译器错误 C2296 | “operator”:非法,左操作数包含“type”类型 |
编译器错误 C2297 | “operator”:非法,右操作数包含“type”类型 |
编译器错误 C2298 | 缺少对成员函数绑定指针的调用 |
编译器错误 C2299 | “function”:行为变化: 显式专用化不能是复制构造函数或复制赋值运算符 |