问题描述:之前工程项目使用vs2008编写,后来在vs2015上重新编译时,发现以下error:
1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------
1> stdafx.cpp
1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__RPC__out_xcount_part”
1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11281): error C2059: 语法错误:“)”
1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11281): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------
1> stdafx.cpp
1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: syntax error: identifier '__RPC__out_xcount_part'
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
解决过程:
在网上搜了很多解决方法,大致有以下几种:
方法1:
把WindowsSDK的包含目录放在最前!
操作:在项目上单击右键—》属性—》配置属性—》VC++目录,修改“包含目录”,把 $(WindowsSdkDir)include 放在最前。重新编译。问题解决的。
方法2:
解决方法:
在DX目录下的Rpcsal.h中添加如下预编译指令:
#define __RPC__out_xcount_part(size, length)
#define __RPC__in_xcount(size)
#define __RPC__in_xcount_full(size)
#define __RPC__in_range(min, max)
#define __RPC__inout_xcount(size)
解决方法大都是以上两种了,但是我都试过,都以失败告终,后来在一个帖子上,一个网友的回复中看到了另一个办法:
方法3:
删除DX 目录下的rpcsal.h。问题得到了解决。