编译器错误 C2200 - C2299

本文档部分提到的文章解释了编译器生成的一部分错误消息。

重要

Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修补程序可能会使许多后续错误消失。

若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。

注意

并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果在使用 F1 时登陆此页,并且认为错误或警告消息需要额外的解释,请告诉我们。 可以使用此页面上的反馈按钮在 GitHub 上提出文档问题。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择“帮助”>“发送反馈”>“报告问题”,或者使用“帮助”>“发送反馈”>“发送建议”提交建议

有关错误和警告的其他帮助,可在 Microsoft Learn Q&A 论坛上查找。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。

有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区

错误消息

错误 消息
编译器错误 C2200 “function”:函数已被定义
编译器错误 C2201 “identifier”:必须有外部链接才可进行导出/导入
编译器错误 C2202 “function”:不是所有的控件路径都返回值
编译器错误 C2203 删除运算符无法指定数组的边界
编译器错误 C2204 “type”:括号中找到的类型定义
编译器错误 C2205 “identifier”:无法使用块范围初始化外部变量
编译器错误 C2206 “function”:typedef 不能用于函数定义
编译器错误 C2207 “member”:类模板的成员无法获取函数类型
编译器错误 C2208 “type”:没有使用此类型定义的成员
编译器错误 C2209 “identifier”:无法在构造函数声明中使用别名
编译器错误 C2210 “标识符”包扩展不能被用作别名模板中非打包参数的自变量
编译器错误 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 视为错误的警告 - 未生成“filetype”文件
编译器错误 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 已过时。
编译器错误 C2236 意外的标记“token”。 你是否忘了“;”?
编译器错误 C2237 多个模块声明
编译器错误 C2238 “token”前有意外的标记
编译器错误 C2239 “function”:尝试删除 __declspec(dllexport) 函数
Compiler error C2240 已过时。
编译器错误 C2241 “identifier”:成员访问受限制
编译器错误 C2242 typedef 名不能位于类/结构/联合之后
编译器错误 C2243 存在从“type1”到“type2”的“conversion_type”转换,但不可访问
编译器错误 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 已过时。
编译器错误 C2279 异常规范不能出现在 typedef 声明中
编译器错误 C2280 “class::function”:尝试引用已删除的函数
编译器错误 C2281 “class::function”:只能在第一个声明中删除函数
编译器错误 C2282 “function1”不能重写“function2”
编译器错误 C2283 “identifer”:未命名的类/结构上不允许使用纯说明符或抽象重写说明符
编译器错误 C2284 “function”:内部函数的非法自变量,参数“number”
编译器错误 C2285 指向成员表示形式的指针已确定 - 忽略 pragma
编译器错误 C2286 指向“identifier”表示形式的成员的指针已设置为“inheritance” - 声明已忽略
编译器错误 C2287 “identifier”:继承表示形式:“inheritiance”比所需的“inheritance”更常规
编译器错误 C2288 已过时。
编译器错误 C2289 多次使用同一类型限定符
编译器错误 C2290 忽略 C++“asm”语法。 使用__asm。
编译器错误 C2291 无法导出匿名命名空间。
编译器错误 C2292 “identifier”:最佳大小写继承表示形式:声明“inheritance1”,但需要“inheritance2”
编译器错误 C2293 “identifier”:使成员变量作为 __based 说明符非法
编译器错误 C2294 无法导出符号“identifier”,因为它具有内部链接
编译器错误 C2295 转义的“character”:在宏定义中非法
编译器错误 C2296 “operator”:非法,左操作数包含“type”类型
编译器错误 C2297 “operator”:非法,右操作数包含“type”类型
编译器错误 C2298 缺少对成员函数绑定指针的调用
编译器错误 C2299 “function”:行为更改:显式专用化不能是复制构造函数或复制赋值运算符

另请参阅

C/C++ 编译器和生成工具错误与警告
编译器错误 C2000 - C3999、C7000 - C7999