如何修复头文件错误?

时间:2010-12-13 22:17:27

标签: c++ header c++builder

所以,我的问题是如何修复头文件中的一些错误,正常运行程序?例如,我使用c ++ builder 2010,当包含winuser.h文件时,程序总是会出现这样的错误

  

检查项目依赖关系......   编译Project7.cbproj(Debug   配置)[BCC32错误]   winuser.h(47):E2257,预计满   解析器上下文       File6.cpp(4):#include c:\ program files(x86)\ embarcadero \ rad   studio \ 7.0 \ include \ winuser.h [BCC32   错误] winuser.h(48):E2257,预计   完整的解析器上下文

我尝试用默认安装中的原始文件替换该文件,但仍然会出现相同的错误,如何修复?

2 个答案:

答案 0 :(得分:4)

错误几乎肯定是由File6.cpp第4行之前出现的任何代码引起的。很可能是另一个头文件,在这种情况下,其中的代码很可能是格式错误的 - 例如缺少分号或括号。

验证winuser.h不是问题的最快方法是更改​​包含顺序,以便首先包含winuser.h。

另一种可能性是winuser.h中的某些东西依赖于之前未包含或直接包含在winuser.h中的其他标题。 windows.h包含了大多数Win32 API头文件,通常建议使用windows,而不是its children中的任何一个。

答案 1 :(得分:2)

该消息难以阅读但实际错误为“E2257,预期”(昏迷预期)

来自RAD工作室文档:

A comma was expected in a list of declarations, initializations, or parameters.

This problem is often caused by a missing syntax element earlier in the file 
or one of its included headers.

错误消息为您提供了它发生的位置,您应该在此之前查看。可能有一些'}',')'或';'或者在错误发生之前代码中缺少其他语法错误(可能在代码中包含头文件之前)。完整的错误消息(您将其截断)或实际代码可以更容易发现。

即使不太可能,错误也可能在winuser.h中包含的一个标题中。