Condividi tramite


Problemi comuni relativi alla migrazione di Visual C++ a 64 bit

Quando si usa Visual C++ per creare applicazioni da eseguire su un sistema operativo Windows a 64 bit, è opportuno tenere presente quanto segue:

  • Nei sistemi operativi Windows a 64 bit gli oggetti int e long sono valori a 32 bit. Per i programmi che si prevede di compilare per le piattaforme a 64 bit, assicurarsi di non assegnare puntatori alle variabili a 32 bit.Nelle piattaforme a 64 bit i puntatori sono valori a 64 bit e, se vengono assegnati a una variabile a 32 bit, il valore del puntatore verrà troncato.

  • Nei sistemi operativi Windows a 64 bit gli oggetti size_t, time_t e ptrdiff_t sono valori a 64 bit.

  • Nei sistemi operativi Windows a 32 bit, time_t è un valore a 32 bit nelle versioni di Visual C++ antecedenti a Visual C++ 2005.time_t è ora un valore Integer a 64 bit per impostazione predefinita.Per altre informazioni, vedere Gestione della durata.

    È consigliabile controllare attentamente le parti di codice in cui un valore int viene elaborato come valore size_t o time_t.È possibile che il numero diventi maggiore di un numero a 32 bit e che i dati vengano troncati quando il numero viene riassegnato alla variabile int.

Il modificatore int (formato esadecimale di printf) non funzionerà nel modo previsto nei sistemi operativi Windows a 64 bit.Infatti, avrà effetto solo sui primi 32 bit del valore passato.

  • Usare %I32x per visualizzare un tipo integrale a 32 bit in formato esadecimale.

  • Usare %I64x per visualizzare un tipo integrale a 64 bit in formato esadecimale.

  • Il modificatore %p (formato esadecimale di un puntatore) funziona nel modo previsto nei sistemi operativi Windows a 64 bit.

Per altre informazioni, vedere:

Vedere anche

Altre risorse

Programmi di configurazione per 64 bit (Visual C++)

Porting e aggiornamento di programmi