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. İşaretçiler 64 bit platformlarda 64 bittir ve 32 bit değişkene atarsanız işaretçi değerini keseceksiniz.

  • 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ğeri nereye aldığını ve bir veya size_t değeri olarak time_t 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 tam sayı türünü onaltılık biçimde görüntülemek için %I32x kullanın.

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

  • %p (işaretçi için onaltılık biçim) 64 bit Windows işletim sisteminde beklendiği gibi çalışacak.

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