Sdílet prostřednictvím


/clr (Common Language Runtime)

Umožňuje používat funkce z společný jazykový modul runtime (CLR) aplikací a komponent.

/clr[:options]

Arguments

  • options
    Jeden nebo více z následujících parametrů oddělených čárkami.

    • /clr
      Vytvoří metadata aplikace.Metadata mohou být spotřebovány ve jiných CLR aplikace a povolí aplikaci zpracovávat typech a datech v jiných součástí CLR metadata.

      Další informace naleznete v tématu

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

      Postupy: Migrace do prostředí /clr.

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

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

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

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

    • /clr:oldSyntax
      Umožňuje spravovaného rozšíření pro C++ syntaxi, což je původní Visual C++ syntaxe CLR programování. 

      Řízená rozšíření pro C++ syntaxe se již nepoužívá.Použití /clr:oldSyntax pouze v případě, že udržuje aplikaci, která používá spravovaného rozšíření jazyka C++.Pokud vyvíjíte novou aplikaci, použijte syntaxi aktualizované.Další informace naleznete v tématu Rozšíření komponent pro platformy běhového prostředí.

      Pokud máte spravovaného rozšíření jazyka C++ aplikace, můžete inovovat projekt pro použití nové syntaxe.Další informace naleznete v tématu Přenos a upgraded programů.

    • /clr:noAssembly
      Určuje, že manifest sestavení by neměla být vložen do výstupního souboru.Standardně noAssembly není platný.

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

      Se nazývá spravovaný program, který nemá v manifestu sestavení metadat modulu.noAssembly Možnost lze použít pouze k vytvoření modulu.Pokud kompilujete pomocí /c a /clr:noAssembly, zadejte /NOASSEMBLY možnost propojovacího programu fáze vytvoření modulu.

      Před Visual C++ 2005 /clr:noAssembly mlčky /clr.Však /clr nyní také podporuje /clr:oldSyntax, takže je nutné zadat /clr formuláře zadáte /clr:noAssembly.Například /clr:noAssembly /clr vytvoří pomocí nového modulu Visual C++ syntaxe CLR a /clr:noAssembly,oldSyntax vytvoří modul pomocí spravovaných rozšíření jazyka C++.

      Před Visual C++ 2005 /clr:noAssembly povinné /LD./LDje nyní zahrnuta, když zadáte /clr:noAssembly.

    • /clr:initialAppDomain
      Umožňuje Visual C++ aplikací pro spuštění na první verze modulu CLR.Použijete-li initialAppDomain, mohou se některé problémy, které jsou zmíněny v Chyba: AppDomainUnloaded výjimka při použití spravovaných rozšíření komponent jazyka Visual C++ na webu podpory společnosti Microsoft.

      Aplikace, která je zkompilován s použitím initialAppDomain neměly být používány aplikace, která používá ASP.NET, protože není podporován v první verzi modulu CLR.

    • /clr:nostdlib
      Instruuje kompilátor, aby ignorovat výchozí adresář \clr.Chcete-li zahrnout více verzí knihovny DLL, jako je například System.dll, kompilátor vytvoří chyby.Pomocí této možnosti můžete zadat určitý rámec pro použití během kompilace.

Poznámky

Spravovaný kód je kód, který může být kontrolována a spravovány modulem CLR.Spravovaný kód může přistupovat spravovaných objektů.Další informace naleznete v tématu /clr – omezení.

Informace o vývoji aplikací, které definují a spotřebovat spravované typy, viz Rozšíření komponent pro platformy běhového prostředí.

Aplikace sestavené pomocí /clr může nebo nemusí obsahovat spravovaná data.

Chcete-li povolit ladění na spravovanou aplikaci, naleznete v /ASSEMBLYDEBUG (Přidat atribut DebuggableAttribute).

Na haldě uvolňování paměti bude vytvořena instance pouze typy CLR.Další informace naleznete v tématu Třídy a struktury (rozšíření komponent C++).Kompilovat funkci do nativního kódu, použijte unmanaged pragma.Další informace naleznete v tématu managed, unmanaged.

Ve výchozím nastavení /clr není platný.Při /clr je ve skutečnosti /MD platí také.Další informace naleznete v tématu /MD, /MT, /LD (Použít běhovou knihovnu)./MDzajistí, že dynamicky propojené s více podprocesy verzích rutin modulu runtime jsou vybrány ze souborů standardní hlavičky ().Multithreading je vyžadován pro spravovaný programování, protože uvolňování paměti modulu CLR spuštění finalizačních metod pomocné vlákna.

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

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

Další informace o způsobu určení typu bitové kopie modulu CLR souboru najdete v části /CLRHEADER.

Všechny moduly, které jsou předány danému vyvolání propojovací program musí být kompilován pomocí stejné možnosti kompilátoru knihovna run-time (/MD nebo /LD).

Použití /ASSEMBLYRESOURCE možností propojovacího programu vložit zdroje v sestavení./ DELAYSIGN, /keycontainer, a /keyfile možnosti propojovacího programu také umožňují přizpůsobit způsob vytvoření sestavení.

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

Globální proměnné v souboru nativní objekt je inicializován první (během DllMain, pokud je spustitelný soubor knihovny DLL) a globální proměnné v oblasti spravované inicializován (předtím, než se spustí spravovaný kód).#pragmainit_seg se týká pouze pořadí v kategoriích spravované a nespravované inicializace.

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

Bezpečné a čisté obrázky

Čistý obraz používá verzi CLR knihovně C Runtime (CRT).CRT však není ověřitelné, a proto CRT nelze použít 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.

Je spravován každý vstupní bod obrazu čistý a bezpečný.Pokud kompilujete pomocí /clr, je nativní vstupní bod.Další informace naleznete v tématu __clrcall.

Pokud kompilujete pomocí /clr:safe, ve výchozím nastavení, jsou appdomain a nesmí být na proces.Pro /clr:pure, i když appdomain je výchozí nastavení, můžete použít proces proměnné.

Při spuštění souboru .exe 32-bit, byl kompilován pomocí /clr nebo /clr:pure na 64-bit operační systém, aplikace bude spuštěna v modulu WOW64, což umožňuje 32bitová aplikace pro spuštění v modulu CLR 32-bit 64bitové verze operačního systému.Ve výchozím souboru .exe, který je zkompilován s použitím /clr:safe spustí na 64bitového modulu CLR na počítači, který je spuštěn operační systém 64 bit. (Do 32bitové verze operačního systému by byl spuštěn stejný soubor .exe na 32bitové verze modulu CLR.) Bezpečné aplikace však může načíst 32bitové komponenty.V takovém případě bitové bezpečný systém podpory 64bitového operačního systému se nezdaří, pokud je načtena 32bitová aplikace (BadFormatException).Chcete-li zajistit, že bezpečné obraz pokračuje při načítání 32bitových kopií 64bitové verze operačního systému, musíte použít /CLRIMAGETYPE změna 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 tom, jak získat upravený název v Zobrazení dekorovaných názvů použitím seznamů.Další informace o programování s 64-bit naleznete v Konfigurace aplikací pro 64bitové (Visual C++).

Ukázky návody a další informace naleznete v tématu:

Metadata a bez názvu třídy.

Bez názvu třídy se zobrazí v metadat s názvem takto: $UnnamedClass$crc-of-current-file-name$index$, kde index je sekvenční počet nepojmenovaných třídy v sestavení.Například následující ukázkový kód generuje nepojmenované třídy metadat.

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

Použijte ildasm.exe pro metadata.

Chcete-li nastavit tuto možnost kompilátoru v aplikaci Visual Studio

  1. V Průzkumník řešení, klepněte pravým tlačítkem myši na název projektu a potom klepněte na tlačítko Vlastnosti otevřete projekt Stránky vlastností dialogové okno.

  2. Vyberte Vlastnosti konfigurace složky.

  3. Na Obecné vlastnost stránky, změňte Common Language Runtime support vlastnost.

    [!POZNÁMKA]

    Při /clr je povolena v 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 pak /clr je povoleno, /RTC bude vypnuta.

    Navíc při ladění /clr aplikace, nastavte Typ ladicího programu vlastnost smíšené nebo pouze spravované.Další informace naleznete v tématu Nastavení projektu pro konfiguraci ladění jazyka C++.

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

Chcete-li tuto možnost kompilátoru nastavit v programu

Viz také

Referenční dokumentace

Možnosti kompilátoru

Nastavení možností kompilátoru