【问题标题】:How to fix header file error?如何修复头文件错误?
【发布时间】:2010-12-13 22:17:27
【问题描述】:

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

正在检查项目依赖项... 编译 Project7.cbproj(调试 配置)[BCC32 错误] winuser.h(47): E2257 ,预期已满 解析器上下文 File6.cpp(4): #include c:\program files (x86)\embarcadero\rad 工作室\7.0\include\winuser.h [BCC32 错误] winuser.h(48): E2257 ,预期 完整的解析器上下文

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

【问题讨论】:

    标签: c++ header c++builder


    【解决方案1】:

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

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

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

    【讨论】:

    • 所以如果我也理解你,你会说即使我不包含 winuser.h 文件(但只包含 windows.h),它可以使用存储在 winuser 中的所有功能.h 没问题?
    • @raptor: 是的,通常 就足够了,包括
    • @raptor:是的,这正是我要说的,这也是推荐的方法。例如,查看 Win32 API 文档,了解 Winuser 函数,例如 MessageBox (msdn.microsoft.com/en-us/library/ms645505%28v=vs.85%29.aspx);在底部,它告诉您函数包含在哪个头文件中,以及要包含的头文件 - 它们不一样,它说 "Header: Winuser.h (include Windows.h)" .另外follow the link在我的回答中,它完全解释了这一点!
    • @Clifford:令人惊讶的是,这些 MS 标头显然不包含看门狗,以允许以任何顺序包含它们,就像通常在 unix 上所做的那样。
    • @kriss:那是因为它们根本不打算直接包含在内。它们是Windows.h 的实现细节
    【解决方案2】:

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

    来自 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 中包含的标头之一中。

    【讨论】:

    • extern "C" { #endif /* __cplusplus / #ifndef WINVER #define WINVER 0x0500 / 5.0 版 / #endif / !WINVER * / #include #ifndef NOUSER typedef HANDLE HDWP; typedef VOID MENUTEMPLATEA;
    • 尝试将 作为第一个包含。我敢打赌,标题之间存在一些宏定义冲突。
    • 我敢打赌……你会赢的,那没有...thnx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多