我很高兴今天编译和运行源代码。然后我在我的一个模块中添加了几行,突然Visual Studio 2012拒绝编译代码,并显示错误消息:
错误C1083:无法打开包含文件:' rpcerr.h':没有这样的文件或目录。
我不确定为什么编译器突然需要找到rpcerr.h
。我没有做任何我昨天做过的事情,但现在我无法解决这个错误。
我自己也找不到rpcerr.h
。引用位于rpc.h
中,它是Visual Studio库的一部分。我猜测它已被链接,因为我包含<windows.h>
。但我不知道在哪里可以找到rpcerr.h
,或者该文件应该做什么。
我真的很想继续这个发展。我猜测代码试图编译rpcerr.h
是有充分理由的,如果我因为某种原因将rpc.h
用于编译成我的源代码,那么我也应该rpcerr.h
。但是试图找到它会让我进入一个莫比乌斯循环。
目前,编译器只抱怨rpcerr.h
。
答案 0 :(得分:2)
我最好把它写出来,迟早会发生这种情况。 <rpc.h>
SDK文件很古老,可以追溯到Microsoft支持为Apple Macintosh编写代码的日子。它仍然支持它,rpcerr.h有一个#include。但是不再提供该文件,只有rpcnterr.h可用。
您需要扫描源代码,或者最近添加#includes,以查找用于选择Macintosh目标的MAC
或_MAC
的#define。使用编辑器的“Go To Definition”上下文菜单命令是最简单的方法。
或者将其用作解决方法:
#undef MAC
#undef _MAC
#include <rpc.h>
或者更改#includes的顺序。请注意,这些变通办法可能会产生副作用,具体取决于使用其他定义的方式。