Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie mit dem Microsoft Visual C++-Compiler (MSVC) Anwendungen erstellen, die unter einem 64-Bit-Windows-Betriebssystem ausgeführt werden sollen, sollten Sie folgende Probleme berücksichtigen:
int
undlong
sind unter 64-Bit-Windows-Betriebssystemen 32-Bit-Werte. Bei Programmen, die Sie für 64-Bit-Plattformen kompilieren möchten, sollten Sie darauf achten, keine Zeiger auf 32-Bit-Variablen zuzuweisen. Zeiger sind auf 64-Bit-Plattformen 64-Bit-Werte, und der Zeigerwert wird abgeschnitten, wenn Sie sie einer 32-Bit-Variable zuweisen.size_t
,time_t
undptrdiff_t
sind unter 64-Bit-Windows-Betriebssystemen 64-Bit-Werte.time_t
ist ein 32-Bit-Wert unter 32-Bit-Windows-Betriebssystemen in Visual Studio 2005 und früheren Versionen.time_t
ist jetzt standardmäßig eine 64-Bit-Ganzzahl. Weitere Informationen finden Sie unter Zeitmanagement.Sie müssen wissen, wo der Code einen
int
-Wert akzeptiert und alssize_t
- odertime_t
-Wert verarbeitet. Die Zahl kann unter Umständen größer als eine 32-Bit-Zahl werden, und Daten werden abgeschnitten, wenn sie wieder an denint
-Speicher übergeben werden.
Der %x-Modifzierer (int
-Hexadezimalformat) printf
funktioniert unter einem 64-Bit-Windows-Betriebssystem nicht wie erwartet. Er funktioniert nur auf den ersten 32 Bits des Werts, der an ihn übergeben wird.
Verwenden Sie %I32x, um einen 32-Bit-Ganzzahltyp im Hexadezimalformat anzuzeigen.
Verwenden Sie %I64x, um einen 64-Bit-Ganzzahltyp im Hexadezimalformat anzuzeigen.
%p (Hexadezimalformat für einen Zeiger) funktioniert unter einem 64-Bit-Windows-Betriebssystem wie erwartet.
Weitere Informationen finden Sie unter:
Siehe auch
Konfigurieren von C++-Projekten für 64-Bit-x64-Ziele
Visual C++-Handbuch: Portieren und Aktualisieren