Partilhar via


Problemas comuns de migração do Visual C++ 64 bit

Quando você usa Visual C++ Para criar aplicativos sejam executados em um sistema de operacional do Windows de 64 bit, você deve estar ciente das seguintes questões:

  • An int e um long são valores de 32 bit em sistemas de operacionais do Windows de 64 bit. Para programas que você pretende compilar para plataformas de 64 bit, tenha cuidado para não atribuir ponteiros para variáveis de 32 bit.Os ponteiros são 64 bit em plataformas de 64 bit e você irão truncar o valor do ponteiro, se você atribuir a uma variável de 32 bit.

  • size_t, time_t, e ptrdiff_t são valores de 64 bit em sistemas de operacionais do Windows de 64 bit.

  • time_t é um valor de 32 bit em sistemas de operacionais do Windows 32 bit em versões do Visual C++ antes Visual C++ 2005. In Visual C++ 2005 e posterior, time_t é um inteiro de 64 bit por padrão. Para obter mais informações, consulte Gerenciamento de time.

    Você deve estar ciente de onde seu código usa um int valor e a processa sistema autônomo um size_t ou time_t valor. É possível que o número pode aumentar para que seja maior do que um número de 32 bit e dados serão truncados quando ele é passado para o int armazenamento.

O hexadecimal ( %xint formato) printf modificador não funcionará sistema autônomo esperado de 64 bit sistema operacional Windows. Ele só irá operar nos primeiros 32 bits do valor é passado para ele.

  • Use % I32x para exibir um número inteiro em um sistema operacional de 32 bit do Windows.

  • Use % I64x para exibir um número inteiro em um sistema operacional de 64 bit do Windows.

  • O %p (formato hexadecimal para um ponteiro) funcionará sistema autônomo esperado em um sistema de operacional do Windows de 64 bit.

Para obter mais informações, consulte:

Consulte também

Outros recursos

Programação de 64 bit com o Visual C++

Portando e atualizando programas