Wie kann ich DECLARE_HANDLE deklarieren?
Frage
Ich portiere einen Code von VC6 nach VS2008.Der Code typedef
s HSPRITE
als int
.Windows SDK 6.1 hat jedoch bereits HSPRITE
über DECLARE_HANDLE
deklariert.Ich möchte HSPRITE
in meinem Code nicht umbenennen, da das Umbenennen in CPP-Dateien viel Zeit in Anspruch nimmt.Wie kann ich den HSPRITE
deklarieren?
Lösung
Das Beste ist, was @ybungalobill sagt.Wenn Sie seine Antwort absolut nicht verwenden können, können Sie windows.h auch dazu verleiten, sie nicht wie folgt zu deklarieren:
#define HSPRITE DeletedWinapi_HSPRITE// prevent windows.h from defining it
#include <windows.h>
#undef HSPRITE
typedef int HSPRITE;
Andere Tipps
Der einzig richtige Weg besteht darin, den Header, der HSPRITE definiert, nicht einzuschließen, was möglicherweise keine Option ist.
Alternativ sollten Sie eine der folgenden Optionen überprüfen:
-
Verwenden Sie HSPRITE wirklich als Int?Vielleicht können Sie die Definition von HSPRITE aus Ihrem Code entfernen und die in den Windows-Headern definierte verwenden.
-
Verwenden Sie Suchen und Ersetzen, um HSPRITE in einen anderen Namen in Ihrem Code umzubenennen.Es ist eine Frage von wenigen Sekunden.