64 bitlik Uygulamalar

Bir uygulamayı derlediğinizde, 64 bitlik bir Windows işletim sisteminde yerel uygulama olarak ya da WOW64 (Windows 64-bit üzerinde Windows-32-bit) altında çalışmasını belirtebilirsiniz. WOW64, 32 bitlik bir uygulamanın 64 bitlik bir sistemde çalışmasını sağlayan bir uyumluluk ortamıdır. WOW64, Windows işletim sisteminin tüm 64 bitlik sürümlerinde bulunur.

Windows'da 32-Bit ve 64-bit Uygulamalar Çalıştırma

.NET Framework 1.0 veya 1.1 üzerinde oluşturulan tüm uygulamalar, 64 bitlik bir işletim sisteminde 32 bitlik uygulamalar olarak kabul edilir ve her zaman WOW64 ve 32 bitlik ortak dil çalışma zamanı (CLR) altında yürütülür. .NET Framework 4 veya sonraki sürümleri üzerinde oluşturulan 32 bit uygulamalar, 64 bit sistemlerde WOW64 altında da çalışır.

Visual Studio, bir x86 bilgisayara CLR'nin 32 bitlik sürümünü, ve 64 bitlik bir Windows bilgisayara hem CLR'nin hem 32 bitlik hem de uygun 64 bitlik sürümünü yükler. (Visual Studio 32 bitlik bir uygulama olduğu için, 64 bitlik bir sisteme yüklendiğinde WOW64 altında çalışır.)

Not

Itanium işlemci ailesine ait x86 öykünmesinin ve WOW64 alt sisteminin tasarımı nedeniyle uygulamalar tek işlemcide yürütülmeye sınırlıdır. Bu etkenler, Itanium tabanlı sistemlerde çalışan 32 bitlik .NET Framework uygulamalarının performansını ve ölçeklenebilirliğini azaltır. Daha yüksek performans ve ölçeklenebilirlik için Itanium tabanlı sistemler için yerel 64 bit desteği içeren .NET Framework 4'ün kullanılmasını öneririz.

Varsayılan olarak, 64 bitlik bir Windows işletim sisteminde 64 bitlik yönetilen bir uygulama çalıştırdığınızda, 2 gigabayttan (GB) daha büyük bir nesne oluşturamazsınız. Ancak, .NET Framework 4.5'te bu sınırı artırabilirsiniz. Daha fazla bilgi için gcAllowVeryLargeObjects> öğesine bakın<.

Çoğu derleme, 32 bitlik CLR ve 64 bitlik CLR'de aynı şekilde çalışır. Ancak bazı programlar, eğer aşağıdakilerden bir veya daha fazlasını içeriyorlarsa CLR'ye bağlı olarak farklı şekilde davranabilir:

  • Platforma göre boyutunu değiştiren üyeler içeren yapılar (örneğin, herhangi bir işaretçi türü).

  • Sabit boyutlar içeren işaretçi aritmetiği.

  • Tanıtıcılar için Int32 yerine IntPtr kullanan yanlış platform çağrıları veya COM bildirimleri.

  • IntPtr öğesini Int32'e yayınlayan kod.

32 bit bir uygulamayı 64 bit CLR üzerinde çalışacak şekilde taşıma hakkında daha fazla bilgi için bkz . 32 bit Yönetilen Kodu 64 bit'e geçirme.

Genel 64-Bit Programlama Bilgileri

64 bit programlama hakkında genel bilgi için, aşağıdaki belgelere bakın:

64-Bit Uygulamalar Oluşturmak için Derleme Desteği

Varsayılan olarak, 32 bitlik veya 64 bitlik bir bilgisayarda uygulama oluşturmak için .NET Framework'ü kullandığınızda, uygulama 64 bitlik bir bilgisayarda yerel uygulama olarak (yani WOW64 altında olmadan) çalışır. Aşağıdaki tablo, yerel olarak, WOW64 altında veya her iki şekilde de çalışacak olan 64 bitlik uygulamalar oluşturmak için Visual Studio'nun nasıl kullanıldığını açıklayan belgeleri listeler.

Derleyici Derleyici seçeneği
Visual Basic -platform (Visual Basic)
Visual C# -platform (C# Derleyici Seçenekleri)
Visual C++ /clr:safe kullanarak platformdan bağımsız, ortak ara dil (CIL) uygulamaları oluşturabilirsiniz. Daha fazla bilgi için bkz . -clr (Ortak Dil Çalışma Zamanı Derlemesi).

Visual C++, 64 bitlik her bir işletim sistemi için ayrı bir derleyici içerir. Visual C++ kullanarak 64 bit Windows işletim sisteminde çalışan yerel uygulamalar oluşturma hakkında daha fazla bilgi için bkz . 64 bit Programlama.

Bir .exe Dosyası veya .dll Dosyasının Durumunu Belirleme

bir .exe dosyasının mı yoksa .dll dosyasının mı yalnızca belirli bir platformda mı yoksa WOW64 altında mı çalıştırılacak olduğunu belirlemek için CorFlags.exe (CorFlags Dönüştürme Aracı) seçeneğini kullanmadan kullanın. Bir .exe dosyasının veya .dll dosyasının platform durumunu değiştirmek için aynı zamanda CorFlags.exe'yi de kullanabilirsiniz. Bir Visual Studio derlemesinin CLR başlığının ana çalışma zamanı sürümü numarası 2 olarak, alt çalışma zamanı sürümü numarası ise 5 olarak ayarlanır. Alt çalışma zamanı sürümü 0 olarak ayarlanan uygulamalar eski uygulamalar olarak işlenir ve her zaman WOW64 altında yürütülür.

Bir .exe veya .dll dosyasını, belirli bir platformda mı yoksa WOW4 altında mı çalışmak için tasarlandığını görmek üzere program aracılığıyla sorgulamak amacıyla Module.GetPEKind yöntemini kullanın.