我如何取消DECLARE_HANDLE的声明?

时间:2011-10-20 09:40:16

标签: c++ windows redeclare

我正在将一段代码从VC6移植到VS2008。代码typedef s HSPRITEint。但是Windows SDK 6.1已经通过HSPRITE声明了DECLARE_HANDLE。我不想在我的代码中重命名HSPRITE,因为它会花费大量时间在.cpp文件中重命名它。那么,我怎样才能取消HSPRITE

2 个答案:

答案 0 :(得分:3)

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

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

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

  2. 使用“查找和替换”将HSPRITE重命名为代码中的其他名称;这只是几秒钟。

答案 1 :(得分:1)

最好的是@ybungalobill所说的。如果你绝对不能使用他的答案,你也可以欺骗windows.h而不是声明它,如下所示:

#define HSPRITE DeletedWinapi_HSPRITE// prevent windows.h from defining it
#include <windows.h>
#undef HSPRITE

typedef int HSPRITE;