Как я могу объявить DECLARE_HANDLE? - PullRequest
0 голосов
/ 20 октября 2011

Я портирую кусок кода с VC6 на VS2008.Код typedef с HSPRITE как int.Но Windows SDK 6.1 уже объявлен с HSPRITE по DECLARE_HANDLE.Я не хочу переименовывать HSPRITE в моем коде, так как переименование его в .cpp файлах займет много времени.Итак, как я могу объявить HSPRITE?

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Единственно верный способ - не включать заголовок, который определяет HSPRITE, что может быть невозможно.

В качестве альтернативы вы должны проверить одно из следующих действий:

  1. Вы действительно используете HSPRITE как int? Возможно, вы можете удалить определение HSPRITE из вашего кода и использовать то, что определено в заголовках Windows.

  2. Используйте Find and Replace, чтобы переименовать HSPRITE в другое имя в вашем коде; это вопрос нескольких секунд.

1 голос
/ 20 октября 2011

Лучше всего то, что говорит @ybungalobill.Если вы абсолютно не можете использовать его ответ, вы также можете заставить windows.h не объявлять его, например:

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

typedef int HSPRITE;
...