2011-09-07 64 views
22

編譯winbase.h時出現以下Windows文件錯誤。在'winbase.h'中編譯錯誤

不知道爲什麼我得到一個語法錯誤和編譯器顯示更多:

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; 
} 
+6

看來你錯過了一個分號。 – Falmarri

+3

你可以請張貼一些代碼嗎?只有這個錯誤,很難知道什麼是錯的。 – templatetypedef

+3

您可能在(in)直接包含「winbase.h」之前錯過了一個分號。 – Mysticial

回答

47

您是否直接包含<winbase.h>

你不應該 - 它希望在處理之前定義/聲明一些東西。特別是在這種情況下,在intsafe.h中聲明爲typedef的標識符ULONG_PTR

包括<windows.h>

3

你可能丟失之前;立即代碼中的#include <windows.h>行。或者,包含文件行之前有一些類似標識符的文本。

int ABC 
#include <windows.h> 
1

如果你的代碼沒有問題,並且#include "winbase.h"之前沒有丟失分號,那麼它應該是在winbase.h(或包含它的文件之一)之前缺少的包含。