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 obszarze WOW64 (windows 32-bitowy w systemie 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.

Program Visual Studio instaluje 32-bitową wersję środowiska CLR na komputerze x86 oraz 32-bitową wersję i odpowiednią 64-bitową wersję środowiska CLR na 64-bitowym komputerze z systemem Windows. (Ponieważ program Visual Studio jest aplikacją 32-bitową, po zainstalowaniu jej w systemie 64-bitowym działa w systemie WOW64).

Uwaga

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 Framework uruchamianych w systemach opartych na itanium. Zalecamy korzystanie z programu .NET Framework 4, który obejmuje natywną obsługę 64-bitowych systemów opartych na itanium 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 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źnika, która zawiera stałe rozmiary.
  • Niepoprawne wywołanie platformy lub deklaracje COM używane Int32 do obsługi 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 nt. programowania 64-bitowego

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

Obsługa kompilatora do tworzenia aplikacji 64-bitowych

Domyślnie, gdy używasz programu .NET Framework do kompilowania aplikacji na komputerze 32-bitowym lub 64-bitowym, aplikacja będzie działać 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.

Compiler 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, zobacz -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 usłudze WOW64, użyj narzędzia CorFlags.exe (CorFlags Conversion Tool) bez opcji. Możesz również użyć CorFlags.exe, aby zmienić stan platformy pliku .exe lub pliku .dll. 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, aby sprawdzić, czy ma być uruchamiana tylko na określonej platformie, czy w obszarze WOW64, użyj Module.GetPEKind metody .