Sdílet prostřednictvím


Postupy: Vytvoření částečně důvěryhodné aplikace odebráním závislosti na modulu DLL knihovny CRT

Toto téma popisuje, jak vytvořit částečně důvěryhodnou aplikaci Common Language Runtime pomocí jazyka Visual C++ odebráním závislosti na msvcm90.dll.

Aplikace Visual C++ vytvořená pomocí /clr bude mít závislost na knihovně msvcm90.dll, která je součástí knihovny C-Runtime. Pokud chcete, aby se vaše aplikace používala v částečném důvěryhodném prostředí, modul CLR vynutí v knihovně DLL určitá pravidla zabezpečení přístupu kódu. Proto bude nutné odebrat tuto závislost, protože msvcm90.dll obsahuje nativní kód a zásady zabezpečení přístupu kódu nelze vynutit.

Pokud vaše aplikace nepoužívá žádné funkce knihovny C-Runtime a chcete odebrat závislost na této knihovně z kódu, budete muset použít možnost /NODEFAULTLIB:msvcmrt.lib linker a propojit s ptrustm.lib nebo ptrustmd.lib. Tyto knihovny obsahují soubory objektů pro inicializaci a neinicializaci aplikace, třídy výjimek používané inicializačním kódem a spravovaný kód zpracování výjimek. Propojení v jedné z těchto knihoven odebere veškerou závislost na msvcm90.dll.

Poznámka

Pořadí neinicializace sestavení se může u aplikací, které používají nedůvěryhodné knihovny, lišit. U normálních aplikací jsou sestavení obvykle uvolněna v obráceném pořadí, v jakém jsou načteny, ale není zaručeno. U aplikací s částečnou důvěryhodností jsou sestavení obvykle uvolněna ve stejném pořadí, v jakém jsou načtena. To také není zaručeno.

Vytvoření částečně důvěryhodné smíšené aplikace (/clr)

  1. Chcete-li odebrat závislost na knihovně msvcm90.dll, je nutné zadat, aby linker nezahrnul tuto knihovnu pomocí možnosti /NODEFAULTLIB:msvcmrt.lib linker. Informace o tom, jak to provést pomocí vývojového prostředí sady Visual Studio nebo programově, najdete v tématu /NODEFAULTLIB (ignorovat knihovny).</a0>

  2. Přidejte jednu z knihoven ptrustm do vstupních závislostí linkeru. Pokud vytváříte aplikaci v režimu vydání, použijte ptrustm.lib. Pro režim ladění použijte ptrustmd.lib. Informace o tom, jak to provést pomocí vývojového prostředí sady Visual Studio nebo programově, naleznete v tématu . Soubory lib jako vstup linkeru.

Viz také

Smíšená (nativní a spravovaná) sestavení
Inicializace smíšených sestavení
Podpora knihovny pro smíšená sestavení
/link (předání možností do linkeru)