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.)

HinweisHinweis

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:

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

/platform (Visual Basic)

Visual C#

/platform (C#-Compileroptionen)

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

/platform (Visual Studio - 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.