Udostępnij za pośrednictwem


Jak: tworzenie częściowo zaufanych aplikacji przez usunięcie zależności CRT biblioteki DLL

W tym temacie omówiono sposób tworzenia częściowo zaufanych wspólnego języka aplikacji using Visual C++ , usuwając zależność od msvcm90.dll.

Aplikacja Visual C++, zbudowany z /clr będą miały zależność na msvcm90.dll, który jest częścią biblioteki C Runtime.Jeśli aplikacja ma być używany w środowisku w częściowej relacji zaufania, CLR wymusi niektóre zasady zabezpieczenia kodu dostępu w bibliotece DLL.W związku z tym należy usunąć ten zależność, ponieważ msvcm90.dll zawiera kod macierzysty i zasad zabezpieczeń dostępu kodu nie można wymusić na nim.

Jeśli aplikacja nie używa żadnych funkcji biblioteki C Runtime i chcesz usunąć zależność od tej biblioteki z kodu, trzeba będzie użyć /NODEFAULTLIB:msvcmrt.lib opcję i łącza z ptrustm.lib lub ptrustmd.lib.Biblioteki zawierają pliki obiektu dla inicjowania i uninitialization aplikacji, wyjątek klas używanych przez kod inicjujący i zarządzany kod obsługi wyjątków.Łączenie w jednym z tych bibliotek spowoduje usunięcie wszelkich zależność od msvcm90.dll.

[!UWAGA]

Kolejność uninitialization Zgromadzenia mogą być różne aplikacje używające funkcji biblioteki ptrust.Dla zwykłych aplikacji zestawów zazwyczaj są rozładowywane w odwrotnej kolejności, że są one ładowane, ale nie jest to gwarantowane.Dla aplikacji w częściowej relacji zaufania zespoły zazwyczaj są rozładowywane w tej samej kolejności, że są załadowane.To również nie jest gwarantowane.

Aby utworzyć częściowo zaufanych mieszane (/ clr) aplikacji

  1. Aby usunąć zależność od msvcm90.dll, można określać program łączący nie, aby dołączyć bibliotekę przy użyciu /NODEFAULTLIB:msvcmrt.lib opcję.Aby uzyskać informacje, jak to zrobić przy użyciu środowiska programistycznego Visual Studio lub programowo, zobacz / NODEFAULTLIB (Ignoruj biblioteki).

  2. Dodanie jednego z bibliotek ptrustm linker zależności wejściowego.W przypadku budowania aplikacji w trybie wersji, należy użyć ptrustm.lib.W trybie debugowania należy użyć ptrustmd.lib.Aby uzyskać informacje, jak to zrobić przy użyciu środowiska programistycznego Visual Studio lub programowo, zobacz .Pliki lib jako dane wejściowe Linker.

Zobacz też

Informacje

/Link (opcje przekazać do programu łączącego)

Koncepcje

Mieszane (macierzystych i zarządzanych)

Inicjowanie mieszanych zestawów

Biblioteka obsługę mieszanych zestawów

Inne zasoby

Zabezpieczeń w trybie macierzystym i.NET Framework kodu