/CLR (kompilace společné Language Runtime)

Umožňuje aplikací a komponent využít funkcí společného jazykového modulu runtime (CLR).

/clr[:options]

Arguments

  • options
    Jeden nebo více z následujících přepínačů oddělené čárkami.

    • /clr
      Vytvoří metadata aplikace.Metadata mohou být spotřebovány jinými aplikacemi CLR a umožňuje aplikace spotřebovat typy a data v metadatech další komponenty CLR.

      Další informace naleznete v tématu

      Smíšená (nativní a spravovaná) sestavenía

      Jak: Přenést do /clr.

    • /clr:pure
      Vytváří Microsoft zprostředkující jazyk (MSIL)-pouze výstupní soubor, který má žádný nativní spustitelný kód.Může však obsahovat nativní typy sestavených MSIL.

      Další informace naleznete v tématu Čistý a ověřitelné kódu (C + +/ CLI).

    • /clr:safe
      Vytváří MSIL jen (žádné nativní spustitelný kód), ověřitelné výstupního souboru./clr:safeumožňuje ověření diagnostiky (Nástroje PEVerify (Peverify.exe)).

      Další informace naleznete v tématu Writing Verifiably Type-Safe Code.

    • /clr:oldSyntax
      Umožňuje spravovat rozšíření C++ syntaxi, která je Visual C++ syntaxe pro programování CLR. 

      Řízená rozšíření pro syntaxi jazyka C++ se již nepoužívá.Použití /clr:oldSyntax pouze v případě, že jsou Údržba aplikace používající spravované rozšíření pro C++.Pokud vyvíjíte nové aplikace, použijte syntaxi aktualizované.Další informace naleznete v tématu Součást rozšíření pro Runtime platformy.

      Máte-li spravovat rozšíření pro aplikaci C++, můžete inovovat projektu použít novou syntaxi.Další informace naleznete v tématu Přenos a upgraded programů.

    • /clr:noAssembly
      Určuje, že manifestu sestavení by vložena do výstupního souboru.Standardně noAssembly není platná.

      noAssembly Možnost se již nepoužívá.Jako náhradu použijte /LN (vytvořit modul MSIL). Další informace naleznete v tématu Deprecated Compiler Options.

      Spravovaný program, který nemá v manifestu sestavení metadat je označován jako modulu.noAssembly Možnost lze použít pouze k výrobě modulu.Pokud při kompilaci pomocí /c a /clr:noAssembly, zadejte /NOASSEMBLY možnost vytvořit modul ve fázi linker.

      Před Visual C++ 2005 /clr:noAssembly předpokládané /clr.Však /clr nyní podporuje také /clr:oldSyntax, takže je nutné zadat /clr formuláře při zadání /clr:noAssembly.Například /clr:noAssembly /clr vytvoří pomocí nového modulu Visual C++ syntaxe CLR a /clr:noAssembly,oldSyntax modul vytvoří pomocí spravované rozšíření pro C++.

      Před Visual C++ 2005 /clr:noAssembly požadované /LD./LDje nyní zahrnuto při zadání /clr:noAssembly.

    • /clr:initialAppDomain
      Umožňuje Visual C++ aplikace na verzi 1 CLR.Používáte-li initialAppDomain, pak může zobrazit některé problémy, které jsou zmíněny v Chyba: Výjimka AppDomainUnloaded při použití Řízená rozšíření pro součásti Visual C++ na webu podpory společnosti Microsoft.

      Aplikace, která je zkompilován pomocí initialAppDomain by měli používat nemusí aplikace používající technologii ASP.NET, protože není podporován ve verzi 1 CLR.

    • /clr:nostdlib
      Pokyn Kompilátor ignoruje výchozí adresář \clr.Pokud chcete zahrnout více verzí knihovny DLL jako System.dll, vytváří kompilátor chyby.Pomocí této možnosti můžete zadat konkrétní rámec během kompilace.

Poznámky

Spravovaný kód je kód, který mohou být kontrolovány a spravované CLR.Spravovaný kód přístup spravované objekty.Další informace naleznete v tématu /CLR omezení.

Informace o vývoji aplikací, které definují a spotřebovat spravovaných typů Součást rozšíření pro Runtime platformy.

Sestavit pomocí aplikace /clr mohou nebo nemusí obsahovat spravované data.

Chcete-li povolit ladění na spravované aplikace, viz / ASSEMBLYDEBUG (Přidat DebuggableAttribute).

Pouze typy CLR bude vytvořena ve shromážděných uvolnění paměti haldy.Další informace naleznete v tématu Třídy a struktury (rozšíření komponent C++).Kompilovat funkci nativního kódu, použijte unmanaged pragma.Další informace naleznete v tématu managed, unmanaged.

Ve výchozím nastavení /clr není funkční.Při /clr , je /MD je také v platnosti.Další informace naleznete v tématu / /LD MD, /MT, (použití knihovna Run-Time)./MDzajistí, že jsou dynamicky propojené s více podprocesy verzí rutiny runtime vybrány ze souborů standardní záhlaví (soubor s příponou h).Podprocesy je vyžadován pro spravované programování, protože kolekcí nesmyslné CLR spustí finalizačních metod v pomocné podprocesu.

Pokud při kompilaci pomocí /c, můžete určit typ CLR (IJW, bezpečné nebo čistý) výsledný výstupní soubor s /CLRIMAGETYPE.

/clrzahrnuje /EHaa žádný jiný /EH možnosti jsou podporovány pro /clr.Další informace naleznete v tématu /EH (Model zpracování výjimek).

Informace o tom, jak určit typ CLR bitové kopie souboru / CLRHEADER.

Všechny moduly předané dané vyvolání vytvořeném propojovacím musí být kompilován pomocí stejné možnosti kompilátoru knihovna run-time (/MD nebo /LD).

Použití /ASSEMBLYRESOURCE linker možnost vložit zdroj v sestavení./ DELAYSIGN, /KEYCONTAINER, a /KEYFILE možnosti linker také umožňují přizpůsobit způsob vytvoření sestavení.

Při /clr se používá _MANAGED symbol je definována na 1.Další informace naleznete v tématu Předdefinovaná makra.

Globální proměnné v souboru nativní objekt jsou inicializovány první (během DllMain, pokud je spustitelný soubor knihovny DLL) a globální proměnné v oblasti spravované inicializován (dříve, než je spravovaný kód spustit).#pragmainit_seg pouze ovlivňuje pořadí inicializace spravovaného a nespravovaného kategorií.

Kompilace pomocí /clr:safe je analogická kompilace pomocí /platform:anycpu v jazycích jako je C#.

Bezpečné a čisté obrazy

Čistý obraz používá verze CLR C knihovna run-time (CRT).Však CRT není ověřitelné, takže nelze použít CRT při kompilaci pomocí /clr:safe.Další informace naleznete v tématu Funkce knihovny CRT.

Nativní kód, který se nemůže objevit v čistý obraz příklady vložené sestavení setjmp, a longjmp.

Každé vstupní bod obrázku čistého nebo bezpečné je spravován.Při kompilaci pomocí /clr, je nativní vstupní bod.Další informace naleznete v tématu __clrcall.

Při kompilaci pomocí /clr:safe, proměnné jsou standardně appdomain a nelze na proces.Pro /clr:pure, ale appdomain je výchozí, můžete použít proces proměnné.

Když soubor EXE 32bitové systémem, který byl kompilován pomocí /clr nebo /clr:pure na 64bitový operační systém, bude aplikace spuštěna v modulu WOW64 umožňuje 32bitová aplikace na 32bitové CLR na 64bitový operační systém.Ve výchozím nastavení soubor EXE, který je kompilován pomocí /clr:safe na 64bitové CLR v počítači se systémem 64bitový operační systém bude spuštěn.(Na 32bitový operační systém, stejného souboru EXE by spustit na 32bitové verze CLR.) Bezpečné aplikace však nelze načíst součást 32bitové.V takovém případě nezdaří bezpečné obraz pod podpory 64bitového operačního systému při načítání 32bitová aplikace (BadFormatException).Chcete-li zajistit, že bezpečné obrázek pokračuje při načítání bitové kopie 32bitové na 64bitový operační systém, je nutné použít /CLRIMAGETYPE metadat (.corflags) a označit jej spustit v modulu WOW64.Následující příkaz je příkladem.(Nahraďte položku symbolu.)

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

Informace o získání dekorovaný název Pomocí zobrazení výpisu zdobená názvy.Další informace o 64bitových programování naleznete v Konfigurace aplikací pro 64bitové (Visual C++).

Vzorky, kurzy a další informace naleznete:

Metadata a nepojmenované třídy

Nepojmenované tříd se zobrazí v metadat s tímto názvem: $UnnamedClass$crc z aktuální název souboru$index$, kde index je sekvenční počet nepojmenované třídy v sestavení.Například následující ukázkový kód generuje nepojmenované třídy v metadatech.

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

Ildasm.exe slouží k zobrazení metadat.

Nastavení této možnosti kompilátoru Visual Studio

  1. V Aplikaci Solution Explorer, klepněte pravým tlačítkem myši na název projektu a klepněte na tlačítko Vlastnosti projekt otevřít Stránky vlastností dialogové okno.

  2. Vyberte Vlastnosti konfigurace složky.

  3. Na Obecné vlastnost stránky, změna Podpora společného jazykového modulu Runtime vlastnost.

    [!POZNÁMKA]

    Při /clr je povoleno Stránky vlastností dialogové okno, kompilátor možnost Vlastnosti, které nejsou kompatibilní s /clr jsou rovněž upraveny podle potřeby.Například pokud /RTC je a potom /clr je povoleno, /RTC bude vypnuta.

    Také při ladění /clr vyrovnání, nastavit Debugger typu vlastnost smíšené nebo pouze spravované.Další informace naleznete v tématu Nastavení konfigurace C++ Debug projektu.

    Informace o vytvoření modulu, viz / NOASSEMBLY (vytvořit modul MSIL).

Programově nastavit tuto volbu kompilátoru

Viz také

Referenční dokumentace

Možnosti kompilátoru

Možnosti nastavení kompilátoru