编译错误 winnt.h(236)

 

今天编译opencv一段程序,VS报出了很让人摸不着头脑的错误,系统Win7,VS2008环境,错误信息如下:

1>------ 已启动生成: 项目: OpenCV, 配置: Debug Win32 ------ 1>正在编译... 1>Global.cpp 1> WINVER not defined. Defaulting to 0x0600 (Windows Vista) 1>f:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(236) : error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面) 1>f:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(236) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>f:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(7818) : error C2146: 语法错误 : 缺少“;”(在标识符“Buffer”的前面) 1>f:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(7818) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>f:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(7818) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>f:/opencv2.1/vs2008/include/opencv/cvcompat.h(803) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 

 

解决方法,首先想到是include的头文件顺序不对,检查源文件中头文件次序发现问题不是出在这里,在MSDN看到一个回答才如梦方醒:

try changing the include directory search order in projects n solutions->vc++ directories->include files under tools->options.  

调整次序后,编译通过。

你可能感兴趣的:(c,windows,search,buffer,include)