由pch文件位置不当引起的报错

1. 前言

​ 今日在Visual Studio 2022中编程时遇到了一个问题,问题的报错内容如下所示:

“{”: 缺少函数标题(是否是老式的形式表?)
缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
语法错误: 缺少“;”(在“{”的前面)
语法错误: 缺少“;”(在标识符“CreateOrOpenRegistryKey”的前面)

​ 寻求了DeepSeek帮助,也在网上冲了很久的浪,但是依旧没有解决该问题。

1.1 原因分析

​ 在冲浪过程中,有因为多加了分号引起的故障,如图1.1所示:
image
​ 图1 分号引起的报错

​ 也有说中文编码引起的,需要修改编码格式,但是很遗憾,我的两种情况都不是,因此这个问题也耽搁了很久。

2. 思路分析

2.1 思路整理以及调试说明

​ 为了解决这个问题,一般来说,要么网上冲浪或者DeepSeek提问,但是不一定能解决这些根本问题。另一种用的是对比方法,即创建工程、注释多于代码,一步步的调试来解决问题。

​ 在最先开始,我是单独创建了源文件(cpp文件)和头文件(h文件),然后就遇到了上述问题。然后,我通过创建类文件再次尝试,相同的代码,创建类文件时可以通过编译,编译结果如图2.1所示;但是,单独创建cpp文件时不能通过编译,编译结果如图2.2所示。对比两者区别后,发现是pch.h文件位置导致的。
image
图2.1 正确放置pch文件
image
图2.2 错误放置pch文件位置

2.2 解决方案

​ 如图2.1所示,我们只需要把pch.h文件放在最开始的地方,这个问题便可迎刃而解。

3. 参考文献

(62 封私信 / 80 条消息) 不是编码问题!!!!\error C2447: “{”: 缺少函数标题(是否是老式的形式表?) - 知乎

【C++ visual studio】解决VS报错:error C2447: “{”: 缺少函数标题(是否是老式的形式表?)【亲测有效,无效捶我】-CSDN博客https://blog.csdn.net/weixin_44244190/article/details/139088163)

posted @ 2025-08-16 17:46  大霁  阅读(24)  评论(0)    收藏  举报