【问题标题】:Compile error in 'winbase.h''winbase.h' 中的编译错误
【发布时间】:2011-11-12 12:48:10
【问题描述】:

在编译 winbase.h 时,我收到以下 Windows 文件错误。

不知道为什么我得到一个语法错误,编译器显示更多:

1> c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(238) : 
   error C2146: syntax error : missing ';' before identifier 'Internal'

这里有一个简单的代码来重现问题:

#include <winbase.h>

int main()
{
    return 0;
}

【问题讨论】:

  • 你好像少了一个分号。
  • 你能发一些代码吗?光是这个错误,就很难知道哪里出了问题。
  • 您可能在直接包含“winbase.h”之前缺少一个分号。
  • 不知道为什么这被裁定为“不是一个真正的问题”。鉴于它有一个正确的、投票赞成的答案,这对我来说确实是一个真正的问题。
  • 尽管这个问题被关闭为“不是一个真正的问题”,但 MSDN 将 Winbase.h 列为使用某些功能要包含的文件,所以这个问题和答案非常有帮助。

标签: c++ visual-studio-2008 winapi


【解决方案1】:

您可能在代码中的#include &lt;windows.h&gt; 行之前缺少;。或者,在包含文件行之前有一些类似标识符的文本。

int ABC
#include <windows.h>

【讨论】:

    【解决方案2】:

    你是直接包括&lt;winbase.h&gt;吗?

    您不应该 - 它希望在处理之前定义/声明一些内容。特别是在这种情况下,标识符 ULONG_PTRintsafe.h 中被声明为 typedef。

    包括&lt;windows.h&gt;

    【讨论】:

      【解决方案3】:

      如果您的代码没问题,并且#include "winbase.h" 之前没有缺少分号,那么它应该是winbase.h 之前缺少的包含(或包含它的文件之一)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 2016-07-14
        • 2014-12-25
        • 2017-06-14
        • 2014-09-24
        • 2015-11-25
        相关资源
        最近更新 更多