我正在将一段代码从VC6移植到VS2008。代码typedef
s HSPRITE
为int
。但是Windows SDK 6.1已经通过HSPRITE
声明了DECLARE_HANDLE
。我不想在我的代码中重命名HSPRITE
,因为它会花费大量时间在.cpp文件中重命名它。那么,我怎样才能取消HSPRITE
?
答案 0 :(得分:3)
唯一正确的方法是不包含定义HSPRITE的标头,这可能不是一个选项。
或者,您应该查看以下内容之一:
你真的使用HSPRITE作为int吗?也许您可以从代码中删除HSPRITE的定义,并使用在windows标题中定义的定义。
使用“查找和替换”将HSPRITE重命名为代码中的其他名称;这只是几秒钟。
答案 1 :(得分:1)
最好的是@ybungalobill所说的。如果你绝对不能使用他的答案,你也可以欺骗windows.h而不是声明它,如下所示:
#define HSPRITE DeletedWinapi_HSPRITE// prevent windows.h from defining it
#include <windows.h>
#undef HSPRITE
typedef int HSPRITE;