Megosztás a következőn keresztül:


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 IntPtrhasználhatókInt32.
  • A kódot, amely a IntPtrInt32.

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 .