Masalah Umum Migrasi Visual C++ 64-bit
Saat Anda menggunakan pengkompilasi Microsoft C++ (MSVC) untuk membuat aplikasi yang akan dijalankan pada sistem operasi Windows 64-bit, Anda harus mengetahui masalah berikut:
dan
int
adalahlong
nilai 32-bit pada sistem operasi Windows 64-bit. Untuk program yang Anda rencanakan untuk dikompilasi untuk platform 64-bit, Anda harus berhati-hati untuk tidak menetapkan pointer ke variabel 32-bit. Pointer adalah 64-bit pada platform 64-bit, dan Anda akan memotong nilai pointer jika Anda menetapkannya ke variabel 32-bit.size_t
,time_t
, danptrdiff_t
adalah nilai 64-bit pada sistem operasi Windows 64-bit.time_t
adalah nilai 32-bit pada sistem operasi Windows 32-bit di Visual Studio 2005 dan yang lebih lama.time_t
sekarang menjadi bilangan bulat 64-bit secara default. Untuk informasi selengkapnya, lihat Manajemen Waktu.Anda harus mengetahui di mana kode Anda mengambil
int
nilai dan memprosesnya sebagai nilaisize_t
atautime_t
. Ada kemungkinan bahwa jumlahnya dapat tumbuh menjadi lebih besar dari angka 32-bit dan data akan dipotong ketika diteruskan kembali keint
penyimpanan.
Pengubah %x (format hex int
) printf
tidak akan berfungsi seperti yang diharapkan pada sistem operasi Windows 64-bit. Ini hanya akan beroperasi pada 32 bit pertama dari nilai yang diteruskan ke dalamnya.
Gunakan %I32x untuk menampilkan tipe integral 32-bit dalam format hex.
Gunakan %I64x untuk menampilkan tipe integral 64-bit dalam format heksa.
%p (format hex untuk penunjuk) akan berfungsi seperti yang diharapkan pada sistem operasi Windows 64-bit.
Untuk informasi selengkapnya, lihat:
Baca juga
Mengonfigurasi proyek C++ untuk target 64-bit, x64
Panduan Porting dan Peningkatan Visual C++
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk