rpcndr.h和wtypes.h冲突的解决方法

清泛原创

当编译出现如下错误时:

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\rpcndr.h(162): error C2632: “char”后面的“int”非法
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\rpcndr.h(162): warning C4091: “typedef ”: 没有声明变量时忽略“unsigned char”的左侧
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wtypes.h(1123): error C2371: “BOOLEAN”: 重定义;不同的基类型
1>          c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(959) : 参见“BOOLEAN”的声明
 

在main文件的第一行加入:

#ifdef WIN32 
#include <WTypes.h> // Include this first on Win (bug #35683) 
#endif



若是 #include <wtypes.h> 及 #include <rpcndr.h> 都需要的情况下,或网上的这种情况:

由于我访问数据库用的oci,线程进行休眠的时候用到了window。h头文件,生成的时候报错如下:
1>c:\program files\microsoft sdks\windows\v6.0a\include\rpcndr.h(156) : error C2632: “char”后面的“int”非法
1>c:\program files\microsoft sdks\windows\v6.0a\include\rpcndr.h(156) : warning C4091: “typedef ”: 没有声明变量时忽略“unsigned char”的左侧
1>c:\program files\microsoft sdks\windows\v6.0a\include\wtypes.h(1117) : error C2371: “BOOLEAN”: 重定义;不同的基类型

这两个头文件我都需要,但是该怎么解决这个冲突呢?哪位大大能指点一下

建议把头文件的顺序调整一下,先包含 wtypes.h,后包含 rpcndr.h,这样就可以编译通过。

头文件 冲突 解决方案

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部