Aracılığıyla paylaş


Yaygın Microsoft C++ 64 bit Geçiş Sorunları

64 bit Windows işletim sisteminde çalıştırılacak uygulamalar oluşturmak için Microsoft C++ (MSVC) derleyicisini kullandığınızda, aşağıdaki sorunlara dikkat etmeniz gerekir:

  • Ve int , long 64 bit Windows işletim sistemlerinde 32 bit değerlerdir. 64 bit platformlar için derlemeyi planladığınız programlar için, 32 bit değişkenlere işaretçi atamamaya dikkat etmelisiniz. 64 bit platformlarda işaretçiler 64 bittir ve 64 bit bir işaretçi değerini 32 bitlik bir değişkene atadığınızda değer kısalacaktır.

  • size_t, time_tve ptrdiff_t 64 bit Windows işletim sistemlerinde 64 bit değerlerdir.

  • time_t , Visual Studio 2005 ve önceki sürümlerde 32 bit Windows işletim sistemlerinde 32 bitlik bir değerdir. time_t artık varsayılan olarak 64 bitlik bir tamsayıdır. Daha fazla bilgi için bkz . Zaman Yönetimi.

    Kodunuzun bir int değerinin nerede alındığını ve bunu bir size_t veya time_t değeri olarak işlediğini bilmeniz gerekir. Sayı 32 bit'ten büyük olabilir ve veriler depolama alanına int geri geçirildiğinde kesilebilir.

%x (onaltılık int biçim) printf değiştiricisi 64 bit Windows işletim sisteminde beklendiği gibi çalışmaz. Yalnızca ona geçirilen değerin ilk 32 bitinde çalışır.

  • 32-bit bir tam sayı türünü onaltılık formatta görüntülemek için %I32x kullanın.

  • 64 bitlik tam sayı türünü onaltılık formatta görüntülemek için %I64x kullanın.

  • %p (işaretçi için onaltılık format), 64 bit Windows işletim sisteminde beklendiği gibi çalışacaktır.

Daha fazla bilgi için bkz.

Ayrıca bkz.

C++ projelerini 64 bit x64 hedefleri için yapılandırma
Microsoft C++ Taşıma ve Yükseltme Kılavuzu