Postupy: Vytváření ověřitelných projektů C++ (C++/CLI)

Průvodci aplikacemi Visual C++ nevytvářet ověřitelné projekty.

Důležité

Visual Studio 2015 zastaralé a Visual Studio 2017 nepodporuje vytváření ověřitelných projektů /clr:pure a /clr:safe . Pokud potřebujete ověřitelný kód, doporučujeme kód přeložit do jazyka C#.

Pokud však používáte starší verzi sady nástrojů kompilátoru Microsoft C++, která podporuje /clr:pure a /clr:safe, lze projekty převést na ověřitelné. Toto téma popisuje, jak nastavit vlastnosti projektu a upravit zdrojové soubory projektu tak, aby transformoval projekty visual Studio C++ tak, aby vytvářely ověřitelné aplikace.

Nastavení kompilátoru a linkeru

Projekty .NET ve výchozím nastavení používají příznak kompilátoru /clr a konfigurují linker na cílový hardware x86. Pro ověřitelný kód musíte použít příznak /clr:safe a musíte linkeru instruovat, aby místo nativních pokynů počítače vygeneroval jazyk MSIL.

Změna nastavení kompilátoru a linkeru

  1. Umožňuje zobrazit stránku vlastností projektu. Další informace naleznete v tématu Nastavení vlastností kompilátoru a sestavení.

  2. Na stránce Obecné v uzlu Vlastnosti konfigurace nastavte vlastnost Podpora modulu Common Language Runtime na možnost Safe MSIL Common Language Runtime Support (/clr:safe).

  3. Na stránce Upřesnit pod uzlem Linker nastavte vlastnost CLR Image Type na Vynucení bezpečné image IL (/CLRIMAGETYPE:SAFE).

Odebrání nativních datových typů

Vzhledem k tomu, že nativní datové typy nejsou ověřitelné, i když se skutečně nepoužívají, je nutné odebrat všechny soubory hlaviček obsahující nativní typy.

Poznámka:

Následující postup platí pro projekty model Windows Forms Application (.NET) a Konzolová aplikace (.NET).

Odebrání odkazů na nativní datové typy

  1. Zakomentujte vše v souboru Stdafx.h.

Konfigurace vstupního bodu

Vzhledem k tomu, že ověřitelné aplikace nemůžou používat knihovny C runtime (CRT), nemůžou záviset na CRT, aby volali hlavní funkci jako standardní vstupní bod. To znamená, že musíte explicitně zadat název funkce, která se má volat na začátku linkeru. (V tomto případě se Main() používá místo main() nebo _tmain() k označení vstupního bodu jiného typu než CRT, ale protože vstupní bod musí být explicitně zadán, je tento název libovolný.)

Poznámka:

Následující postupy platí pro projekty konzolové aplikace (.NET).

Konfigurace vstupního bodu

  1. V hlavním souboru .cpp projektu změňte _tmain() na Main().

  2. Umožňuje zobrazit stránku vlastností projektu. Další informace naleznete v tématu Nastavení vlastností kompilátoru a sestavení.

  3. Na stránce Upřesnit pod uzlem Linker zadejte Main hodnotu vlastnosti Vstupní bod.

Viz také