Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При использовании компилятора Microsoft C++ (MSVC) для создания приложений для запуска в 64-разрядной операционной системе Windows следует учитывать следующие проблемы:
В 64-разрядных версиях Windows
intиlongявляются 32-разрядными значениями. В программах, которые планируется компилировать для 64-разрядных платформ, не следует назначать указателям 32-разрядные переменные. В 64-разрядных платформах указатели являются 64-разрядными, поэтому значение указателя будет усечено, если назначить ему 32-разрядную переменную.В 64-разрядных версиях Windows
size_t,time_tиptrdiff_tявляются 64-разрядными значениями.В версии Visual Studio 2005 и более ранних
time_tявляется 32-разрядным значением в 32-разрядных версиях Windows. Теперьtime_tпо умолчанию представляет собой 64-разрядное целое число. Дополнительные сведения см. в разделе Управление временем.Следует знать, где ваш код принимает значение
intи обрабатывает его как значениеsize_tилиtime_t. Разрядность может превысить 32 бита. В этом случае данные будут усечены при их возвращении в хранилищеint.
Модификатор %x (шестнадцатеричный формат int) printf не будет действовать в 64-разрядных версиях Windows ожидаемым образом. Он будет обрабатывать только первые 32 бита передаваемого ему значения.
Для отображения 32-разрядных целочисленных типов в шестнадцатеричном формате используйте модификатор %I32x.
Для отображения 64-разрядных целочисленных типов в шестнадцатеричном формате используйте модификатор %I64x.
Модификатор %p (шестнадцатеричный формат для указателя) в 64-разрядных версиях Windows действует правильно.
Дополнительные сведения см. в разделе:
См. также
Настройка проектов C++ для 64-разрядных целевых объектов с архитектурой x64
Руководство по переносу и обновлению Microsoft C++