Fiddler - действительно полезный инструмент, вы можете создавать HTTP-запросы на основе XML с различными глаголами запросов, такими как GET, POST, PUT, DELETE и т. Д.
Я всегда использовал _WIN64, чтобы проверить, является ли это 64-битной сборкой.
NB _WIN32 также всегда (автоматически) определяется MSVC в 64-битных сборках, поэтому проверьте _WIN64 перед тем, как вы проверьте _WIN32:
#if defined( _WIN64 )
// Windows 64 bit code here
#elif defined( _WIN32 )
// Windows 32 bit code here
#else
// Non-Windows code here
#endif
Похоже, ваша проблема может быть связана с заголовком или настройкой проекта, неправильно определяющим _WIN64
- это следует оставить компилятору.
Есть тонкая разница между WIN64
и _WIN64
(по крайней мере, для компиляторов Microsoft - другие компиляторы должны последовать их примеру, но не все):
_WIN64
определяется компилятором при создании программы для 64-разрядной платформы Windows. Обратите внимание, что это имя находится в пространстве имен разработчика компилятора (начальное подчеркивание, за которым следует заглавная буква) WIN64
определяется Windows Platform SDK (или как там это называется в этом году) при нацеливании на 64-битную платформу. Итак, если вы включаете только стандартные заголовки и не t принять другие меры для его определения, WIN64
не будет , а не .
Аналогичная история для _WIN32
и WIN32
- но проверка других компиляторов: GCC 3.4.5 действительно определяет WIN32
, даже если используются только стандартные заголовки. Как и Digital Mars.
Компиляторы Microsoft и Comeau этого не делают.
Еще одна известная мелочь (надеюсь) заключается в том, что _WIN32
и WIN32
установлены при ориентации на 64- бит платформы Windows. В противном случае было бы сломано слишком много вещей.
WIN32
, даже если используются только стандартные заголовки. Как и Digital Mars.
Компиляторы Microsoft и Comeau этого не делают.
Еще одна известная мелочь (надеюсь) заключается в том, что _WIN32
и WIN32
установлены при ориентации на 64- бит платформы Windows. В противном случае было бы сломано слишком много вещей.
WIN32
, даже если используются только стандартные заголовки. Как и Digital Mars.
Компиляторы Microsoft и Comeau этого не делают.
Еще одна известная мелочь (надеюсь) заключается в том, что _WIN32
и WIN32
установлены при ориентации на 64- бит платформы Windows. В противном случае было бы сломано слишком много вещей.
Компилятор Visual C ++ определяет следующие макросы:
Проверьте свойства сборки вашего проекта, особенно секцию препроцессора. Вы определяете _WIN64
где-нибудь в сборках WIN32
? Параметр sizeof
, вероятно, не будет работать, поскольку вы не можете использовать его в тесте #if
.