0

我正在将一段代码从 VC6 移植到 VS2008。代码typedefs HSPRITEas int。但是 Windows SDK 6.1 已经HSPRITE通过DECLARE_HANDLE. 我不想HSPRITE在我的代码中重命名,因为在 .cpp 文件中重命名它会消耗大量时间。那么,我该如何取消声明HSPRITE

4

2 回答 2

3

唯一正确的方法是不包含定义 HSPRITE 的标头,这可能不是一个选项。

或者,您应该检查以下内容之一:

  1. 你真的使用 HSPRITE 作为 int 吗?也许您可以从代码中删除 HSPRITE 的定义,并使用 Windows 标题中定义的定义。

  2. 使用 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 回答