64 bites alkalmazások
Amikor lefordít egy alkalmazást, megadhatja, hogy a windowsos 64 bites operációs rendszeren futjon natív alkalmazásként vagy WOW64 (Windows 64 bites Windows 32 bites). A WOW64 egy kompatibilitási környezet, amely lehetővé teszi, hogy egy 32 bites alkalmazás 64 bites rendszeren fusson. A WOW64 a Windows operációs rendszer összes 64 bites verziójában megtalálható.
32 bites és 64 bites alkalmazások futtatása Windows rendszeren
A .NET-keretrendszer 4 vagy újabb verziókra épülő 32 bites alkalmazások a WOW64 alatt futnak 64 bites rendszereken.
A Visual Studio telepíti a CLR 32 bites verzióját egy x86-os számítógépre, valamint a 32 bites verziót és a CLR megfelelő 64 bites verzióját egy 64 bites Windows-számítógépre. (Mivel a Visual Studio egy 32 bites alkalmazás, ha 64 bites rendszerre van telepítve, a WOW64 alatt fut.)
Feljegyzés
Az x86 emuláció és az Itanium processzorcsalád WOW64 alrendszerének kialakítása miatt az alkalmazások csak egy processzoron futtathatók. Ezek a tényezők csökkentik az Itanium-alapú rendszereken futó 32 bites .NET-keretrendszer alkalmazások teljesítményét és méretezhetőségét. Javasoljuk, hogy használja a .NET-keretrendszer 4-et, amely natív, 64 bites itanium-alapú támogatást tartalmaz a nagyobb teljesítmény és a méretezhetőség érdekében.
Ha 64 bites felügyelt alkalmazást futtat egy 64 bites Windows operációs rendszeren, alapértelmezés szerint legfeljebb 2 gigabájt (GB) méretű objektumot hozhat létre. A 4.5-ös .NET-keretrendszer azonban növelheti ezt a korlátot. További információ: <gcAllowVeryLargeObjects> elem.
Számos szerelvény azonos módon fut a 32 bites CLR-en és a 64 bites CLR-en is. Egyes programok azonban a CLR-től függően eltérően viselkedhetnek, ha az alábbiak közül legalább egyet tartalmaznak:
- A platformtól függően változó tagokat tartalmazó struktúrák (például bármilyen mutatótípus).
- Mutató aritmetikai, amely állandó méreteket tartalmaz.
- Helytelen platformhívások vagy COM-deklarációk, amelyek a leírók helyett
IntPtr
használhatókInt32
. - A kódot, amely a
IntPtr
Int32
.
A 64 bites CLR-en futtatandó 32 bites alkalmazások portolásáról további információt a 32 bites felügyelt kód migrálása 64 bitesre című témakörben talál.
Általános 64 bites programozási információk
A 64 bites programozással kapcsolatos általános információkért tekintse meg az alábbi dokumentumokat:
A Windows SDK dokumentációjában lásd a 64 bites Windows programozási útmutatóját.
A Visual Studio 64 bites alkalmazások létrehozásának támogatásáról a Visual Studio IDE 64 bites támogatásában olvashat.
Fordító támogatása 64 bites alkalmazások létrehozásához
Alapértelmezés szerint, ha a .NET-keretrendszer egy 32 bites vagy 64 bites számítógépen készít alkalmazást, az alkalmazás natív alkalmazásként fog futni egy 64 bites számítógépen (azaz nem a WOW64 alatt). Az alábbi táblázat olyan dokumentumokat sorol fel, amelyek ismertetik, hogyan hozhat létre 64 bites, natívként, WOW64 vagy mindkettő alatt futó 64 bites alkalmazásokat a Visual Studio fordítóival.
Fordító | Fordítási lehetőség |
---|---|
Visual Basic | -platform (Visual Basic) |
Visual C# | -platform (C# fordító beállításai) |
Visual C++ | Platformfüggetlen, köznyelvi (CIL) alkalmazásokat a /clr:safe használatával hozhat létre. További információ: -clr (Common Language Runtime Compilation). A Visual C++ minden 64 bites operációs rendszerhez külön fordítót tartalmaz. További információ arról, hogyan hozhat létre natív alkalmazásokat a Visual C++ használatával, amelyek 64 bites Windows operációs rendszeren futnak, lásd a 64 bites programozást. |
Egy .exe- vagy .dll-fájl állapotának meghatározása
Annak megállapításához, hogy egy .exe vagy .dll fájl csak egy adott platformon vagy a WOW64 alatt fut-e, használja a CorFlags.exe (CorFlags Conversion Tool) lehetőséget. A CorFlags.exe használatával is módosíthatja egy .exe vagy .dll fájl platformállapotát. A Visual Studio-szerelvény CLR-fejlécében a fő futtatókörnyezet verziószáma 2, az alverzió verziószáma pedig 5. A 0-ra beállított kisebb futtatókörnyezeti verziójú alkalmazások régi alkalmazásokként lesznek kezelve, és mindig a WOW64 alatt futnak.
Ha programozott módon szeretne lekérdezni egy .exe vagy .dll annak megállapításához, hogy az csak egy adott platformon vagy a WOW64 alatt fut-e, használja a metódust Module.GetPEKind .
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: