共用方式為


Visual C++ 64 位元移轉時常見的問題

當您使用 Visual c++ 建立在 64 位元 Windows 作業系統上執行的應用程式時,您應注意下列問題:

  • int 和 long 是 64 位元 Windows 作業系統上的 32 位元值。對於您要為 64 位元平台進行編譯的程式,您應小心不要將指標指派給 32 位元變數。指標在 64 位元平台上是 64 位元的,如果您將指標指派給 32 位元變數,將會截斷指標值。

  • size_ttime_tptrdiff_t 在 64 位元 Windows 作業系統上是 64 位元值。

  • 在 32 位元 Windows 作業系統上,time_t 在 Visual C++ 2005 之前的 Visual C++ 版本中是 32 位元值。time_t 現在預設為 64 位元整數。如需詳細資訊,請參閱時間管理

    您應注意程式碼在何處取用 int 值,並將其視為 size_ttime_t 值來處理。此數值可能會成長而大於 32 位元數值,且資料在傳回至 int 儲存體時將會截斷。

%x (十六進位 int 格式) printf 修飾詞在 64 位元 Windows 作業系統上將無法如預期運作。它只會處理傳遞給它之值的前 32 個位元。

  • 使用 %I32x 可顯示十六進位格式的 32 位元整數類型。

  • 使用 %I64x 顯示十六進位格式的 64 位元整數類型。

  • %p (指標的十六進位格式) 在 64 位元 Windows 作業系統上將如預期運作。

如需詳細資訊,請參閱:

請參閱

其他資源

設定程式的 64 位元 (Visual C++)

移植和升級程式