64-Bit-Anwendungen

Aktualisiert: November 2007

Sie können Ihre Anwendung kompilieren und festlegen, dass sie auf einem 64-Bit-Betriebssystem entweder als eine systemeigene Anwendung oder unter WOW64 ausgeführt wird. WOW64 ist eine vom Betriebssystem bereitgestellte Kompatibilitätsumgebung, mit der 32-Bit-Anwendungen auf einem 64-Bit-Windows-Betriebssystem ausgeführt werden können.

Hinweise

Alle mit den Versionen 1.0 und 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. Des Weiteren können 32-Bit-spezifische Anwendungen, die mit Version 2.0 von .NET Framework erstellt wurden, auf 64-Bit-Plattformen unter WOW64 ausgeführt werden.

Auf einem x86-Computer installiert Visual Studio die 32-Bit-Version 2.0 der CLR. Auf einem 64-Bit-Windows-Computer wird dagegen sowohl die 32-Bit-Version 2.0 als auch die entsprechende 64-Bit-Version 2.0 der CLR installiert. (Visual Studio 2008 ist eine 32-Bit-Anwendung und wird bei der Installation auf einem 64-Bit-Windows-Betriebssystem unter WOW64. ausgeführt.)

Hinweis:

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. Die Ausführung auf einem Prozessor und die x86-Emulation reduzieren die Leistung und die Skalierbarkeit von .NET Framework-32-Bit-Anwendungen, die auf einem Itanium-basierten System 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, wie beispielsweise hoch belastete ASP.NET-Anwendungen. In diesem Fall sollten Sie die Verwendung von .NET Framework, Version 2.0, in Betracht ziehen, das systemeigene 64-Bit-Unterstützung für Itanium-basierte Systeme bietet und dadurch erhöhte Leistung und Skalierbarkeit ermöglicht.

Ebenso wie bei 32-Bit-Windows-Betriebssystemen ist die Größe von Objekten, die Sie bei der Ausführung einer verwalteten 64-Bit-Anwendung auf einem 64-Bit-Windows-Betriebssystem erstellen können, auf 2 GB begrenzt.

In vielen Fällen gleicht die Ausführung von Assemblys in der 32-Bit-CLR der Ausführung in der 64-Bit-CLR. Unter anderem können jedoch folgende Ursachen ein abweichendes Programmverhalten bei der Ausführung in der 64-Bit-CLR bewirken:

  • Strukturen, die Member 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 für Handles Int32 verwenden anstelle von IntPtr.

  • Umwandeln von IntPtr in Int32.

Weitere Informationen zum Portieren einer 32-Bit-Anwendung für die Ausführung in der 64-Bit-CLR finden Sie unter https://msdn.microsoft.com/library/?url=/library/en-us/dndotnet/html/64migrate.asp.

Allgemeine Informationen zur 64-Bit-Programmierung

Allgemeine Informationen zu Problemen bei der 64-Bit-Programmierung finden Sie unter

Informationen zur Unterstützung, die die Visual Studio-Entwicklungsumgebung für das Erstellen von 64-Bit-Anwendungen bietet, finden Sie unter 64-Bit-Unterstützung der Visual Studio-Entwicklungsumgebung.

Compilerunterstützung für das Erstellen von 64-Bit-Anwendungen

Eine mit .NET Framework 2.0 (auf einem 32-Bit- oder einem 64-Bit-Computer) erstellte Anwendung wird auf einem 64-Bit-Computer standardmäßig als systemeigene Anwendung ausgeführt, also nicht unter WOW64. In der folgenden Tabelle sind Themen aufgelistet, in denen beschrieben wird, wie die Visual Studio-Compiler zum Erstellen von 64-Bit-Anwendungen verwendet werden, die als systemeigenes Programm und/oder unter WOW64 ausgeführt werden können.

Compiler

Compileroptionen

Visual Basic

/platform (Visual Basic)

Visual C#

/platform (Ausgabeplattform festlegen) (C#-Compileroptionen)

Visual C++

Mit /clr:safe können Sie plattformunabhängige MSIL-Anwendungen erstellen. Weitere Informationen dazu finden Sie unter /clr (Common Language Runtime-Kompilierung).

Visual C++ wird mit separaten Compilern für jedes 64-Bit-Betriebssystem geliefert. Weitere Informationen zur Verwendung von Visual C++ zum Erstellen systemeigener Anwendungen, die auf einem 64-Bit-Windows-Betriebssystem ausgeführt werden, finden Sie unter 64 Bit-Programmierung mit Visual C++.

JScript

/platform (JScript)

Bestimmen des Status einer EXE- oder DLL-Datei

Durch die Verwendung von corflags.exe auf der Befehlszeile können Sie bestimmen, ob eine EXE-Datei oder eine DLL-Datei nur für die Ausführung auf einer bestimmten Plattform oder für die Ausführung unter WOW64 vorgesehen ist. Weiterhin können Sie mit corflags.exe auch den Plattformstatus einer EXE-Datei oder DLL-Datei ändern. Weitere Informationen finden Sie unter Konvertierungstool CorFlags (CorFlags.exe). Der CLR-Header (oder COM+-Laufzeitheader) einer Visual Studio-Assembly verfügt über die Laufzeit-Hauptversionsnummer 2 und die Laufzeit-Nebenversionsnummer 5. Visual Studio 2003-Assemblys tragen jeweils die Versionsnummern 2 bzw. 0. Alle Anwendungen, für die die Laufzeit-Nebenversionsnummer auf 0 festgelegt ist, werden als ältere Anwendungen behandelt und auf 64-Bit-Computern unter WOW64 ausgeführt.

Mithilfe von GetPEKind können Sie programmgesteuert abfragen, ob eine EXE-Datei oder eine DLL-Datei nur für die Ausführung auf einer bestimmten Plattform oder für die Ausführung unter WOW64 vorgesehen ist.

Siehe auch

Weitere Ressourcen

Windows-basierte Anwendungen, Komponenten und Dienste