Aracılığıyla paylaş


/CLR (ortak dil çalışma zamanı derleme)

Ortak dil çalışma zamanı (clr) özelliklerini kullanmak, uygulamaları ve bileşenleri sağlar.

/clr[:options]

Değişkenler

  • options
    Aşağıdaki anahtarları, en az biri virgülle.

    • /clr
      Uygulama meta verilerini oluşturur. Meta verileri başka bir clr uygulama tarafından tüketilen ve uygulama türleri ve diğer clr bileşenlerinin meta verileri kullanmasını sağlar.

      Daha fazla bilgi için bkz.

      Karışık (Yerel ve Yönetilen) Derlemelerve

      /clr'a Geçiş Nasıl Yapılır.

    • /clr:pure
      Microsoft Ara dili (MSIL) üretir-doğal çalıştırılabilir kod sahip çıktı dosyası. Ancak, yerel türleri için MSIL derlenmiş içerebilir.

      Daha fazla bilgi için bkz. Saf ve doğrulanabilir kod (C++/ CLI).

    • /clr:safe
      Bir MSIL salt üretir (yerel yürütülebilir kodu yok), doğrulanabilir çıktı dosyası. /clr:safedoğrulama tanılamayı sağlayan (PEVerify aracı (Peverify.exe)).

      Daha fazla bilgi için bkz. Writing Verifiably Type-Safe Code.

    • /clr:oldSyntax
      Özgün olan C++ sözdizimi için yönetilen uzantılar sağlayan Visual C++ clr programlama sözdizimi. 

      C++ sözdizimi için yönetilen uzantılar kullanım dışı. Use /clr:oldSyntax , yalnızca C++ için yönetilen uzantılar kullanan bir uygulama Bakımı. Yeni bir uygulama geliştiriyorsanız, güncelleştirilmiş sözdizimi kullanın. Daha fazla bilgi için bkz. Çalışma platformları için bileşen uzantıları.

      Bir C++ uygulama için yönetilen uzantılar varsa, yeni sözdizimini kullanmak için proje yükseltebilirsiniz. Daha fazla bilgi için bkz. Bağlantı Noktası Oluşturma ve Programları Yükseltme.

    • /clr:noAssembly
      Derleme bildirimi çıktı dosyasına eklenmesi gerektiğini değil belirtir. Varsayılan olarak, noAssembly seçeneği etkin değildir.

      noAssembly Seçeneği kaldırılmıştır. Onun yerine Sırasıyla (MSIL modül oluşturma) kullanın. Daha fazla bilgi için bkz. Deprecated Compiler Options.

      Derleme meta verileri bildirimde bulunmayan yönetilen bir program olarak bilinen bir modülü. noAssembly Seçeneği, yalnızca bir modül üretmek için kullanılabilir. Kullanarak derleme, /c ve /clr:noAssembly, sonra belirtmek /noassembly linker aşama seçeneğinde bir modül oluşturun.

      Visual C++ 2005 önce /clr:noAssembly ima /clr. Ancak, /clr şimdi de destekler /clr:oldSyntax, belirtmeniz gerekir böylece /clr , belirttiğiniz zaman form /clr:noAssembly. Örneğin, /clr:noAssembly /clr kullanarak yeni bir modül oluşturur Visual C++ clr sözdizimi ve /clr:noAssembly,oldSyntax C++ için yönetilen uzantılar kullanılarak bir modülü oluşturur.

      Visual C++ 2005 önce /clr:noAssembly gerekli /LD. /LDbelirttiğiniz zaman şimdi örtülü /clr:noAssembly.

    • /clr:initialAppDomain
      Sağlayan bir Visual C++ clr sürümü 1 çalıştırılacak uygulama. Kullanırsanız, initialAppDomain, içinde açıklanan sorunlardan bazılarını görebilirsiniz sonra Hata: AppDomainUnloaded özel durum kullandığınızda yönetilen bileşenleri Visual C++ extensions Microsoft Destek Web sitesinde.

      Kullanarak derlenmiş bir uygulama initialAppDomain asp kullanan bir uygulama tarafından kullanılmamalıdır.net clr 1 sürümünde desteklenmediğinden.

    • /clr:nostdlib
      Derleyiciye varsayılan \clr dizini yok saymak için kullanın. System.dll gibi bir dll dosyasının birden çok sürüm dahil olmak üzere, derleyici hataları oluşturur. Bu seçenek kullanılarak derlenmesi sırasında kullanılmak üzere özel çerçeve belirlemenize olanak verir.

Notlar

Yönetilen kod kontrol edilebilir ve clr tarafından yönetilen koddur. Yönetilen kod yönetilen nesnelere erişebilirsiniz. Daha fazla bilgi için bkz. /CLR kısıtlamaları.

Tanımlar ve yönetilen türler kullanan uygulamalar geliştirme hakkında daha fazla bilgi için bkz: Çalışma platformları için bileşen uzantıları.

Bir uygulama kullanarak derlenmiş /clr olabilir veya yönetilen veri içermeyebilir.

Bir yönetilen uygulamayı hata ayıklamayı etkinleştirmek için bkz: / assemblydebug (DebuggableAttribute ekleyin).

Sadece clr türleri atık olarak toplanmış öbek üzerinde oluşturulacak. Daha fazla bilgi için bkz. Sınıflar ve Yapılar (C++ Bileşen Uzantıları). Bir işlev yerel kodda derleme için kullanmak unmanaged pragma. Daha fazla bilgi için bkz. managed, unmanaged.

Varsayılan olarak, /clr etkili değildir. Zaman /clr etkin, /MD da etkilidir. Daha fazla bilgi için bkz. / md, /mt, /ld (çalışma zamanı kitaplığı kullanın). /MDçalışma zamanı yordamları dinamik olarak bağlı, çok iş parçacıklı sürümleri standart üstbilgi (.h) dosyalarından taşımaların seçilmesini sağlar. Çok iş parçacığı, clr Çöp toplayıcı, yardımcı bir iş parçacığı finalizers çalıştığı için programlama yönetilen için gereklidir.

Kullanarak derleme, /c, sonuçta elde edilen çıktı dosyasıyla clr türü (IJW, güvenli veya saf) belirtebilirsiniz /CLRIMAGETYPE.

/clranlamına gelir /EHave Hayır diğer /EH seçenekleri için desteklenen /clr. Daha fazla bilgi için bkz. /eh (özel durum işleme modeli).

clr görüntü dosyasının türünü belirleme hakkında daha fazla bilgi için bkz: / CLRHEADER.

Aynı çalışma zamanı kitaplığı derleyici seçeneğini kullanarak belirli bir bağlantı oluşturucu çağrısı için geçirilen tüm modüllerin derlenmiş gerekir (/MD veya /LD).

Use /assemblyresource bir derlemede bir kaynak gömmek için bağlayıcı seçeneği. / DELAYSIGN, /KEYCONTAINER, ve /KEYFILE bağlantı Oluşturucu seçenekleri de derleme oluşturulma şeklini özelleştirmenizi sağlar.

Zaman /clr kullanılır, _MANAGED sembol 1 olacak şekilde tanımlanır. Daha fazla bilgi için bkz. Önceden tanımlı makrolar.

Yerel nesne dosyasındaki genel değişkenleri başlatılan ilk (sırasında yürütülebilir bir dll ise DllMain) ve yönetilen bölümündeki genel değişkenleri başlatıldı (herhangi bir yönetilen kod çalıştırmadan önce). #pragmastatik Oluºumu d enetlemek yalnızca yönetilen ve yönetilmeyen kategorilerdeki başlatma sırasını etkiler.

Kullanarak derleme /clr:safe kullanarak derleme paraleldir /platform:anycpu C# gibi dillerde.

Güvenli ve saf görüntüleri

Saf bir görüntü c çalışma zamanı (crt) kitaplığı clr sürümü kullanır. Kullanarak derlediğinizde crt kullanamazlar ancak, crt doğrulanabilir, değil /clr:safe. Daha fazla bilgi için bkz. crt kitaplığı özellikleri.

Saf bir görüntüde bulunamaz yerel kod örnekleri arasında satır içi derleme setjmp, ve longjmp.

Her giriş noktası saf ya da güvenli bir görüntünün yönetilir. Ne zaman, derleme kullanarak /clr, girişi noktasıdır doğal. Daha fazla bilgi için bkz. __clrcall.

Ne zaman, derleme kullanarak /clr:safe, varsayılan olarak, değişkenleri olan appdomain ve işlem içi olamaz. İçin /clr:pure, ancak appdomain varsayılandır kullanabileceğiniz işlem değişkenleri.

Ne zaman bir 32-bit .exe dosyasını çalıştıran derlenmiş kullanarak /clr veya /clr:pure 64-bit işletim sisteminde uygulama 64-bit işletim sistemlerinde 32 bit clr çalıştırmak 32 bitlik bir uygulama tanıyan WOW64 altında çalıştırılır. Varsayılan ayar olarak kullanarak derlenmiş bir .exe dosyası /clr:safe 64-bit işletim sistemi çalıştıran bir bilgisayara 64 bit clr üzerinde çalışır. (32-Bit işletim sisteminde aynı .exe dosyasının 32 bit clr üzerinde çalışır.) Ancak, güvenli bir uygulama, 32-bit bileşen yüklenemedi. Bu durumda, 32-bit uygulama (BadFormatException) yüklendiğinde, işletim sisteminin 64-bit desteği altında çalışan güvenli bir görüntü başarısız olur. Güvenli bir görüntü 64-bit işletim sistemlerinde 32 bit görüntüyü yüklediğinde çalışmasına devam etmesini sağlamak için kullanmanız gerekir /CLRIMAGETYPE (.corflags) meta verileri değiştirmek ve WOW64 altında çalışmasına işaretlemek için. Aşağıdaki komut satırını bir örnektir. (Kendi giriş sembolü değiştirin.)

cl /clr:safe t.cpp /link /clrimagetype:pure /entry:?main@@$$HYMHXZ /subsystem:console

Süslenmiş adı almak hakkında daha fazla bilgi için bkz: Adları donatılmış bir listesini görüntülemek için kullanma. 64-Bit programlama hakkında daha fazla bilgi için bkz: 64-Bit (Visual C++) programlarını yapılandırma.

Örnekler, izlenecek yollar ve daha fazla bilgi için bkz:

Meta veriler ve adsız sınıfları

Adsız sınıfları gibi adlı meta veriler görüntülenir: $UnnamedClass$crc-in-geçerli-dosya adı$Dizin$, burada dizini sıralı bir derleme adlandırılmamış sınıflarda sayısıdır. Örneğin, aşağıdaki kod örneği, meta verilerde adlandırılmamış bir sınıf oluşturur.

// clr_unnamed_class.cpp
// compile by using: /clr /LD
class {} x;

ILDasm.exe meta verileri görüntülemek için kullanın.

Visual Studio'da bu derleyici seçeneği belirlemek için

  1. İçinde Solution Explorer, proje adını sağ tıklatın ve sonra ' özelliklerini projeyi açmak için Özellik sayfaları iletişim kutusu.

  2. Seçin Yapılandırma özellikleri klasörü.

  3. Üzerinde Genel özellik sayfasında, değiştirmek Common Language Runtime destek özelliği.

    Not

    Zaman /clr etkin olduğundan Özellik sayfaları iletişim kutusunda, derleyici seçeneği ile uyumlu olmayan bir özellikleri /clr de düzeltilir, gerektiği gibi.Örneğin, /RTC ayarlanır ve sonra /clr etkin, /RTC devre dışı bırakılacak.

    Ayrıca, ne zaman debug bir /clr uygulama, set Hata ayıklayıcı türü özelliğine karma veya yalnızca yönetilen.Daha fazla bilgi için bkz. Hata ayıklama için bir C++ proje ayarları yapılandırma.

    Bir modül oluşturma hakkında bilgi için bkz: / noassembly (MSIL modül oluşturma).

Bu derleyici seçeneği programlı olarak ayarlamak için

Ayrıca bkz.

Başvuru

Derleme Seçenekleri

Derleyici seçeneklerini ayarlama