我正在将一段代码从 VC6 移植到 VS2008。代码typedef
s HSPRITE
as int
。但是 Windows SDK 6.1 已经HSPRITE
通过DECLARE_HANDLE
. 我不想HSPRITE
在我的代码中重命名,因为在 .cpp 文件中重命名它会消耗大量时间。那么,我该如何取消声明HSPRITE
?
问问题
717 次
2 回答
3
唯一正确的方法是不包含定义 HSPRITE 的标头,这可能不是一个选项。
或者,您应该检查以下内容之一:
你真的使用 HSPRITE 作为 int 吗?也许您可以从代码中删除 HSPRITE 的定义,并使用 Windows 标题中定义的定义。
使用 Find and Replace 将 HSPRITE 重命名为代码中的其他名称;几秒钟的事。
于 2011-10-20T13:08:18.567 回答
1
最好的是@ybungalobill 所说的。如果您绝对不能使用他的答案,您还可以欺骗 windows.h 使其不声明它,如下所示:
#define HSPRITE DeletedWinapi_HSPRITE// prevent windows.h from defining it
#include <windows.h>
#undef HSPRITE
typedef int HSPRITE;
于 2011-10-20T13:13:12.130 回答