>
>
>
Как используя ifdef узнать, что объявле…

Андрей Карпов
Статей: 643

Как используя ifdef узнать, что объявлен тип DWORD_PTR?

Memsize-типы DWORD_PTR, INT_PTR, LONG_PTR, UINT_PTR и ULONG_PTR предназначены для поддержки 64-битного кода и способны безопасно хранить в себе указатель в независимости от разрядности платформы. Однако в старых версиях Windows Platform SDK данные типы могут отсутствовать. Наилучшим решением данной проблемы будет обновление SDK до последней версии, но если это по какой-то причине невозможно, то данные типы можно объявить самостоятельно.

В связи с тем, что данные типы объявлены с помощью спецификатора typedef, нет единого надёжного способа на этапе препроцессинга с помощью директивы #ifdef определить их присутствие в используемой версии SDK. Однако, максимальное значение для этих типов определено через MAXULONG_PTR в файле basetsd.h, поэтому можно поступить так:

#if !defined(MAXULONG_PTR)
typedef DWORD DWORD_PTR;
#endif

Библиографический список