64-Bit-Anwendungen
Aktualisiert: August 2010
Wenn Sie eine Anwendung kompilieren, können Sie festlegen, dass sie auf einem Windows-Betriebssystem mit 64 Bit entweder als systemeigene Anwendung oder unter WOW64 ausgeführt werden soll. WOW64 ist eine Kompatibilitätsumgebung, die die Ausführung einer 32-Bit-Anwendung auf einem 64-Bit-System ermöglicht. WOW64 ist im System enthalten.
Hinweise
Alle mit den Versionen 1.0 oder 1.1 von .NET Framework erstellten Anwendungen werden als 32-Bit-Anwendungen behandelt und auf einem 64-Bit-Betriebssystem immer unter WOW64 in der 32-Bit-Common Language Runtime (CLR) ausgeführt. Außerdem können 32-Bit-spezifische Anwendungen, die mit .NET Framework, Version 4 erstellt werden, unter WOW64 auf 64-Bit-Systemen ausgeführt werden.
Visual Studio installiert die 32-Bit-Version der CLR auf einem x86-Computer und sowohl die 32-Bit-Version als auch die entsprechende 64-Bit-Version der CLR auf einem 64-Bit-Windows-Computer. (Da Visual Studio 2010 eine 32-Bit-Anwendung ist, wenn sie in einem 64-Bit-System installiert ist, wird sie unter WOW64 ausgeführt.)
![]() |
---|
Aufgrund des Designs der x86-Emulation und des WOW64-Subsystems für die Itanium-Prozessorfamilie ist die Ausführung von Anwendungen auf einen Prozessor beschränkt.Diese Faktoren beeinträchtigen die Leistung und Skalierbarkeit der 32-Bit-Version von .NET Framework-Anwendungen, die unter Itanium-basierten Systemen ausgeführt werden.Es wird empfohlen, dass Anwendungen, die auf .NET Framework, Version 1.1, basieren, für interaktive Clientanwendungen verwendet werden. Sie sollten jedoch nicht für Anwendungen verwendet werden, die hohe Anforderungen an die Leistung oder die Skalierbarkeit stellen, z. B. hoch belastete ASP.NET-Anwendungen.Verwenden Sie nach Möglichkeit .NET Framework, Version 4, das systemeigene 64-Bit-Unterstützung für Itanium-basierte Systeme zur Verbesserung von Leistung und Skalierbarkeit bietet. |
Wenn Sie eine verwaltete 64-Bit-Anwendung auf einem 64-Bit-Windows-Betriebssystem ausführen, können Sie ein Objekt mit einer Größe von maximal 2 Gigabyte (GB) erstellen.
Viele Assemblys können sowohl unter der 32-Bit-Version als auch der 64-Bit-Version der CLR ausgeführt werden. Allerdings zeigen einige Programme abhängig von der CLR aus den folgenden Gründen möglicherweise ein anderes Verhalten:
Strukturen, die Elemente enthalten, deren Größe sich je nach Plattform ändert, z. B. jeder beliebige Zeigertyp.
Zeigerarithmetik, die Größen von Konstanten einschließt.
Fehlerhafter Plattformaufruf oder COM-Deklarationen, die Int32 statt IntPtr für Handles verwenden.
Typumwandlung von IntPtr in Int32.
Weitere Informationen zum Portieren einer 32-Bit-Anwendung auf die 64-Bit-CLR finden Sie unter Migrieren von verwaltetem Code (32 Bit) zu Code mit 64 Bit auf der MSDN-Website.
Allgemeine Informationen zur 64-Bit-Programmierung
Allgemeine Informationen zur 64-Bit-Programmierung finden Sie in den folgenden Dokumenten:
Weitere Informationen über die 64-Bit-Version der CLR auf einem 64-Bit-Windows-Computer finden Sie unter .NET Framework Developer Center auf der MSDN-Website.
In der Windows SDK-Dokumentation finden Sie unter Programmierhandbuch für Windows (64 Bit) weitere Informationen.
Informationen zum Herunterladen einer 64-Bit-Version der CLR finden Sie auf der MSDN-Website unter .NET Framework Developer Center – Downloads.
Informationen zur Visual Studio-Unterstützung für das Erstellen von 64-Bit-Anwendungen finden Sie unter 64-Bit-Unterstützung der Visual Studio-Entwicklungsumgebung.
Compilerunterstützung für das Erstellen von 64-Bit-Anwendungen
Wenn Sie .NET Framework 2.0 verwenden, um eine Anwendung auf einem 32-Bit- oder 64-Bit-Computer zu erstellen, wird die Anwendung auf einem 64-Bit-Computer als systemeigene Anwendung ausgeführt (d. h. nicht unter WOW64). In der folgenden Tabelle werden die Dokumente aufgelistet, die Anweisungen zur Verwendung von Visual Studio-Compilern für die Erstellung von 64-Bit-Anwendungen enthalten, die als systemeigene Anwendungen, unter WOW64 oder in beiden Varianten ausgeführt werden.
Compiler |
Compileroptionen |
---|---|
Visual Basic |
|
Visual C# |
|
Visual C++ |
Sie können plattformagnostische Microsoft Intermediate Language (MSIL)-Anwendungen erstellen, indem Sie /clr:safe verwenden. Weitere Informationen finden Sie unter /clr (Common Language Runtime-Kompilierung). Visual C++ enthält einen gesonderten Compiler für jedes 64-Bit-Betriebssystem. Weitere Informationen zur Verwendung von Visual C++ für die Erstellung von systemeigenen Anwendungen, die auf einem 64-Bit-Windows-Betriebssystem ausgeführt werden, finden Sie unter 64 Bit-Programmierung mit Visual C++. |
JScript |
Bestimmen des Status einer EXE- oder DLL-Datei
Um zu bestimmen, ob eine EXE- oder DLL-Datei nur auf einer bestimmten Plattform oder unter WOW64 ausgeführt werden soll, verwenden Sie an der Eingabeaufforderung "corflags.exe". Weiterhin können Sie mit "corflags.exe" auch den Plattformstatus einer EXE- oder DLL-Datei ändern. Weitere Informationen finden Sie unter CorFlags.exe (Konvertierungstool CorFlags). Im CLR-Header (oder COM+-Laufzeit Header) einer Visual Studio-Assembly ist die Nummer der Hauptversion der Laufzeit auf 2 festgelegt, während die Nummer der Nebenversion auf 5 festgelegt ist (0 in Visual Studio .NET 2003-Assemblys). Anwendungen, für die die Nebenversionsnummer der Laufzeit auf 0 festgelegt ist, werden als ältere Anwendungen behandelt und auf 64-Bit-Computern unter WOW64 ausgeführt.
Wenn Sie eine EXE- oder DLL-Datei programmgesteuert abfragen möchten, um festzustellen, ob sie nur auf einer bestimmten Plattform oder unter WOW64 ausgeführt werden kann, verwenden Sie die GetPEKind-Methode.
Siehe auch
Weitere Ressourcen
Windows-basierte Anwendungen und Komponenten
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
August 2010 |
Links und Versionsnummern wurden aktualisiert. |
Informationsergänzung. |