在WinDef.h的深处,有来自分段记忆时代的遗物:
#define far #define near
如果您尝试使用near或far作为变量名称,这显然会导致问题.任何干净的解决方法?其他然后重命名我的变量?
与其他人的说法相反,你可以安全地取消它们.原因是它们只是宏的.它们仅影响其定义与未定义之间的预处理器.在你的情况下,这将是从windows.h的早期到windows.h的最后一行.如果你需要额外的Windows标题,你可以在windows.h之后和#undef之前包含它们.在您的代码中,预处理器将根据需要简单地保持符号不变.
关于旧代码的评论是无关紧要的.该代码将在一个单独的库中,独立编译.只有在链接时才会连接这些,当宏已经过去了.
包括windows.h
以下内容后,取消定义您不想要的任何宏:
#include#undef near #undef far