添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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++ 帮助和社区

Error messages

Message 编译器错误 C3047 OpenMP“sections”区域中的结构化块的前面必须是“#pragma omp section”(在 Visual Studio 2022 中已过时。) 编译器错误 C3048 “#pragma omp atomic”后面的表达式格式不正确 编译器错误 C3049 “argument”: OpenMP“default”子句中的参数无效 编译器错误 C3050 “class”: ref 类不能从“identifier”继承 编译器错误 C3051 编译器错误 C3052 “identifier”: default(none) 子句下的 data-sharing 子句中未出现变量 编译器错误 C3053 “identifier”: “threadprivate”只对全局或静态数据项有效 编译器错误 C3054 当前在泛型类或函数中不支持“#pragma omp parallel”(在 Visual Studio 2022 中已过时。) 编译器错误 C3055 “identifier”: 符号在用于“threadprivate”指令之前无法被引用 编译器错误 C3056 “identifier”: 符号所在范围与“threadprivate”指令所在范围不同 编译器错误 C3057 “identifier”: 当前不支持“threadprivate”符号的动态初始化 编译器错误 C3058 “identifier”: 符号在用于“copyin”子句之前,不能声明为“threadprivate” 编译器错误 C3059 “identifier”: “threadprivate”符号不能用于“clause”子句中 编译器错误 C3060 “identifier”: 友元函数可能没有使用限定名在类内定义(可能只声明了它) 编译器错误 C3061 运算符“operator”:不允许在基本类型为“type”的枚举“type”上使用 编译器错误 C3062 “identifier”: 因为基本类型为“type”,枚举器需要值 编译器错误 C3063 运算符“operator”:所有操作数必须具有相同的枚举类型 编译器错误 C3064 “identifier”: 必须是简单类型或可解析为简单类型 编译器错误 C3065 不允许在非类范围上声明属性 编译器错误 C3066 可通过多种方式使用这些参数调用此类型的对象 编译器错误 C3067 初始化表达式列表不能与内置运算符 [] 一起使用 编译器错误 C3068 “identifier”: “naked”函数不能包含在出现 C++ 异常的情况下会要求展开的对象 编译器错误 C3069 运算符“operator”:不允许用于枚举类型 编译器错误 C3070 “identifier”: 属性没有“set”方法 编译器错误 C3071 运算符“operator”只能应用于 ref 类或值类型的实例中 编译器错误 C3072 运算符“operator”不能应用于 ref 类的实例中,请使用一元“%”运算符将 ref 类的实例转换为句柄类型 编译器错误 C3073 “identifier”: ref 类没有用户定义的复制构造函数 编译器错误 C3074 无法使用带圆括号的初始化表达式初始化数组 编译器错误 C3075 “identifier”: 无法将引用类型“type”的实例嵌入到值类型中 编译器错误 C3076 “identifier”: 无法将引用类型“type”的实例嵌入到本机类型中 编译器错误 C3077 “identifier”: 终结器只能是引用类型的成员 编译器错误 C3078 必须在新的表达式中指定数组大小 编译器错误 C3079 初始化表达式列表不能用作此赋值运算符的正确操作数 编译器错误 C3080 “finalizer”: 终结器不能具有存储类说明符 编译器错误 C3081 编译器错误 C3082 编译器错误 C3083 “identifier”: “::”左侧的符号必须是一种类型 编译器错误 C3084 “identifier”: 析构函数/终结器不能为“keyword” 编译器错误 C3085 “identifier”: 构造函数不能为“keyword” 编译器错误 C3086 找不到“std::initializer_list”:需要 #include <initializer_list> 编译器错误 C3087 “identifier”: “declaration”的调用已初始化此成员 编译器错误 C3088 “class”: 特性构造函数必须具有已命名的形参 编译器错误 C3089 “identifier”: 参数名与任何数据成员的名称都不匹配 编译器错误 C3090 “class”: 特性类不能是模板 编译器错误 C3091 “class”: 特性类不能包含基类 编译器错误 C3092 “class” 特性类成员不能为位字段、“static”或“const” 编译器错误 C3093 “type”: 该类型不允许用于特性类成员“member” 编译器错误 C3094 “attribute”: 不允许匿名使用 编译器错误 C3095 “attribute”: 特性不能重复 编译器错误 C3096 “attribute”: 特性只能用于特性类的数据成员 编译器错误 C3097 “attribute”: 特性必须使用“assembly:”或“module:”确定范围 编译器错误 C3098 “identifier”: 特性没有用户定义的构造函数 编译器错误 C3099 “keyword”: 将 [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] 用于托管/WinRT 特性

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