编译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;
}
答案 0 :(得分:52)
您是否直接加入<winbase.h>
?
你不应该 - 它希望在处理之前定义/声明一些东西。特别是在这种情况下,标识符ULONG_PTR
在intsafe.h
中被声明为typedef。
包括<windows.h>
。
答案 1 :(得分:3)
您可能在代码中的;
行之前错过了#include <windows.h>
。或者,在包含文件行之前有一些类似标识符的文本。
int ABC
#include <windows.h>
答案 2 :(得分:1)
如果你的代码没问题,并且在#include "winbase.h"
之前没有丢失的分号,那么它应该是winbase.h
之前缺少的包含(或者包含它的文件之一)。