Udostępnij za pośrednictwem


Aplikacje 64-bitowe

Podczas kompilowania aplikacji można określić, że ma działać w 64-bitowym systemie operacyjnym Windows jako aplikacja natywna lub w trybie WOW64 (Windows 32-bitowy na Windows 64-bitowym). WOW64 to środowisko zgodności, które umożliwia uruchamianie aplikacji 32-bitowej w systemie 64-bitowym. WOW64 jest zawarty we wszystkich 64-bitowych wersjach systemu operacyjnego Windows.

Uruchamianie aplikacji 32-bitowych a 64-bitowych w systemie Windows

32-bitowe aplikacje oparte na programie .NET Framework 4 lub nowszym działają w systemie WOW64 w systemach 64-bitowych.

Uwaga / Notatka

Ze względu na projekt emulacji x86 i podsystemU WOW64 dla rodziny procesorów Itanium aplikacje są ograniczone do wykonywania na jednym procesorze. Czynniki te zmniejszają wydajność i skalowalność 32-bitowych aplikacji .NET uruchamianych w systemach opartych na itanium. Zalecamy używanie programu .NET Framework 4 lub nowszego, który obejmuje natywną obsługę systemów opartych na architekturze Itanium w wersji 64-bitowej w celu zwiększenia wydajności i skalowalności.

Domyślnie po uruchomieniu 64-bitowej aplikacji zarządzanej w 64-bitowym systemie operacyjnym Windows można utworzyć obiekt o pojemności nie więcej niż 2 gigabajtów (GB). Jednak w programie .NET Framework 4.5 lub nowszym można zwiększyć ten limit. Aby uzyskać więcej informacji, zobacz <element gcAllowVeryLargeObjects>.

Wiele zestawów działa identycznie zarówno na 32-bitowej CLR, jak i 64-bitowej CLR. Jednak niektóre programy mogą zachowywać się inaczej, w zależności od środowiska CLR, jeśli zawierają co najmniej jedną z następujących czynności:

  • Struktury zawierające elementy członkowskie, które zmieniają rozmiar w zależności od platformy (na przykład dowolny typ wskaźnika).
  • Arytmetyka wskaźników, która zawiera stałe wielkości.
  • Niepoprawne wywołania funkcji platformy lub deklaracje COM, które używają Int32 dla uchwytów zamiast IntPtr.
  • Kod rzutujący IntPtr na Int32.

Aby uzyskać więcej informacji na temat przenoszenia 32-bitowej aplikacji do uruchamiania w 64-bitowym środowisku CLR, zobacz Migrowanie 32-bitowego kodu zarządzanego do 64-bitowego.

Ogólne informacje o programowaniu 64-bitowym

Aby uzyskać ogólne informacje o programowaniu 64-bitowym, zobacz następujące dokumenty:

Obsługa kompilatora na potrzeby tworzenia aplikacji 64-bitowych

Domyślnie, gdy używasz platformy .NET do kompilowania aplikacji na komputerze 32-bitowym lub 64-bitowym, aplikacja zostanie uruchomiona na komputerze 64-bitowym jako aplikacja natywna (czyli nie w systemie WOW64). W poniższej tabeli wymieniono dokumenty, które wyjaśniają, jak używać kompilatorów programu Visual Studio do tworzenia aplikacji 64-bitowych, które będą działać jako natywne, w obszarze WOW64 lub oba te elementy.

Kompilator Opcja kompilatora
Visual Basic -platform (Visual Basic)
Visual C# -platform (opcje kompilatora języka C#)
Visual C++ Można tworzyć niezależne od platformy, typowe aplikacje języka pośredniego (CIL) przy użyciu / clr:safe. Aby uzyskać więcej informacji, zajrzyj do -clr (Kompilacja Środowiska Uruchomieniowego Języka Wspólnego).

Język Visual C++ zawiera oddzielny kompilator dla każdego 64-bitowego systemu operacyjnego. Aby uzyskać więcej informacji o sposobie używania języka Visual C++ do tworzenia natywnych aplikacji uruchamianych w 64-bitowym systemie operacyjnym Windows, zobacz 64-bitowe programowanie.

Określanie stanu pliku .exe lub pliku .dll

Aby określić, czy plik .exe lub plik .dll ma być uruchamiany tylko na określonej platformie lub w obszarze WOW64, użyj narzędziaCorFlags.exe (Narzędzie konwersji CorFlags) bez opcji. Możesz również użyć CorFlags.exe, aby zmienić stan platformy pliku .exe lub .dll pliku. Nagłówek CLR zestawu programu Visual Studio ma numer wersji głównego środowiska uruchomieniowego ustawiony na 2, a numer wersji pomocniczej środowiska uruchomieniowego ustawiony na 5. Aplikacje, które mają wersję pomocniczego środowiska uruchomieniowego ustawioną na 0, są traktowane jako starsze aplikacje i są zawsze wykonywane w obszarze WOW64.

Aby programowo wykonać zapytanie o .exe lub .dll i sprawdzić, czy ma być uruchamiane tylko na określonej platformie lub w środowisku WOW64, użyj metody Module.GetPEKind.