Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při kompilaci aplikace je možné určit, že by měla běžet v 64bitovém operačním systému Windows, a to buď jako nativní aplikace, nebo pod WOW64 (Windows 32bit na Windows 64bit). WOW64 je prostředí kompatibility, které umožňuje 32bitové aplikaci spustit v 64bitovém systému. WOW64 je součástí všech 64bitových verzí operačního systému Windows.
Spouštění 32bitových a 64bitových aplikací ve Windows
32bitové aplikace založené na rozhraní .NET Framework 4 nebo novějších verzích běží pod WOW64 v 64bitových systémech.
Poznámka:
Vzhledem k návrhu emulace x86 a subsystému WOW64 pro řadu procesorů Itanium jsou aplikace omezeny na provádění na jednom procesoru. Tyto faktory snižují výkon a škálovatelnost 32bitových aplikací .NET, které běží na systémech s procesorem Itanium. Doporučujeme použít rozhraní .NET Framework 4 nebo novější, které zahrnuje nativní 64bitovou podporu pro systémy s procesorem Itanium, pro zvýšení výkonu a škálovatelnosti.
Když ve výchozím nastavení spustíte 64bitovou spravovanou aplikaci v 64bitovém operačním systému Windows, můžete vytvořit objekt o velikosti maximálně 2 gigabajty (GB). V rozhraní .NET Framework 4.5 a novějším však můžete tento limit zvýšit. Další informace naleznete v elementu<gcAllowVeryLargeObjects>.
Mnoho sestavení běží identicky na 32bitovém modulu CLR i v 64bitovém modulu CLR. Některé programy se ale můžou chovat jinak v závislosti na CLR, pokud obsahují jednu nebo více z následujících možností:
- Struktury obsahující členy, které mění velikost v závislosti na platformě (například jakýkoli typ ukazatele).
- Aritmetika s ukazateli zahrnující konstantní velikosti.
- Nesprávné vyvolání platformy nebo deklarace COM, které používají
Int32pro popisovače místoIntPtr. - Kód, který přetypuje
IntPtrnaInt32.
Další informace o tom, jak přenést 32bitovou aplikaci, která se má spustit v 64bitovém modulu CLR, najdete v tématu Migrace 32bitového spravovaného kódu na 64bitovou verzi.
Obecné 64bitové informace o programování
Obecné informace o 64bitovém programování najdete v následujících dokumentech:
- V dokumentaci k sadě Windows SDK viz Průvodce programováním pro 64bitovou verzi Windows.
- Informace o podpoře sady Visual Studio pro vytváření 64bitových aplikací najdete v tématu 64bitová podpora integrovaného vývojového prostředí sady Visual Studio.
Podpora kompilátoru pro vytváření 64bitových aplikací
Když použijete .NET k sestavení aplikace na 32bitovém nebo 64bitovém počítači, spustí se aplikace na 64bitovém počítači jako nativní aplikace (to znamená, že není pod WOW64). Následující tabulka uvádí dokumenty, které vysvětlují, jak pomocí kompilátorů sady Visual Studio vytvářet 64bitové aplikace, které se budou spouštět jako nativní, pod WOW64 nebo obojí.
| kompilátor | Možnost kompilátoru |
|---|---|
| Visual Basic | -platform (Visual Basic) |
| Visual C# | -platform (možnosti kompilátoru C#) |
| Visual C++ | Pomocí /clr:safe můžete vytvářet aplikace společného zprostředkujícího jazyka (CIL) nezávislé na platformě. Další informace naleznete v tématu -clr (Common Language Runtime Compilation). Visual C++ obsahuje samostatný kompilátor pro každý 64bitový operační systém. Další informace o tom, jak používat Visual C++ k vytváření nativních aplikací, které běží v 64bitovém operačním systému Windows, naleznete v 64bitovém programování. |
Určení stavu souboru .exe nebo souboru .dll
Chcete-li zjistit, zda .exe soubor nebo .dll soubor je určen pouze pro konkrétní platformu nebo pod WOW64, použijte CorFlags.exe (CorFlags Conversion Tool) bez možností. Pomocí CorFlags.exe můžete také změnit stav platformy souboru .exe nebo .dll souboru. Hlavička CLR sestavení sady Visual Studio má hlavní číslo verze modulu runtime nastavené na 2 a číslo podverze modulu runtime nastavené na 5. Aplikace, které mají podverzi modulu runtime nastavenou na 0, se považují za starší aplikace a vždy se spouštějí v rámci WOW64.
Pokud chcete programově dotazovat .exe nebo .dll zjistit, jestli se má spustit pouze na konkrétní platformě nebo v rámci WOW64, použijte metodu Module.GetPEKind .