이 항목에서는 msvcm90.dll 대한 종속성을 제거하여 Visual C++를 사용하여 부분적으로 신뢰할 수 있는 공용 언어 런타임 애플리케이션을 만드는 방법에 대해 설명합니다.
/clr로 빌드된 Visual C++ 애플리케이션은 C 런타임 라이브러리의 일부인 msvcm90.dll 종속성을 갖습니다. 부분 신뢰 환경에서 애플리케이션을 사용하려는 경우 CLR은 DLL에 특정 코드 액세스 보안 규칙을 적용합니다. 따라서 msvcm90.dll 네이티브 코드를 포함하고 코드 액세스 보안 정책을 적용할 수 없으므로 이 종속성을 제거해야 합니다.
애플리케이션이 C-런타임 라이브러리의 기능을 사용하지 않고 코드에서 이 라이브러리에 대한 종속성을 제거하려는 경우 /NODEFAULTLIB:msvcmrt.lib 링커 옵션을 사용하고 ptrustm.lib 또는 ptrustmd.lib와 연결해야 합니다. 이러한 라이브러리에는 애플리케이션의 초기화 및 초기화 해제를 위한 개체 파일, 초기화 코드에서 사용하는 예외 클래스 및 관리되는 예외 처리 코드가 포함됩니다. 이러한 라이브러리 중 하나에서 연결하면 msvcm90.dll 대한 종속성이 제거됩니다.
참고 항목
ptrust 라이브러리를 사용하는 애플리케이션의 경우 어셈블리 초기화 순서가 다를 수 있습니다. 일반 애플리케이션의 경우 어셈블리는 일반적으로 로드되는 역순으로 언로드되지만 보장되지는 않습니다. 부분 신뢰 애플리케이션의 경우 어셈블리는 일반적으로 로드되는 순서와 동일한 순서로 언로드됩니다. 이것은 또한 보장되지 않습니다.
부분적으로 신뢰할 수 있는 혼합(/clr) 애플리케이션을 만들려면
msvcm90.dll 종속성을 제거하려면 /NODEFAULTLIB:msvcmrt.lib 링커 옵션을 사용하여 이 라이브러리를 포함하지 않도록 링커에 지정해야 합니다. Visual Studio 개발 환경을 사용하거나 프로그래밍 방식으로 이 작업을 수행하는 방법에 대한 자세한 내용은 /NODEFAULTLIB(라이브러리 무시)를 참조하세요.
ptrustm 라이브러리 중 하나를 링커 입력 종속성에 추가합니다. 릴리스 모드에서 애플리케이션을 빌드하는 경우 ptrustm.lib를 사용합니다. 디버그 모드의 경우 ptrustmd.lib를 사용합니다. Visual Studio 개발 환경을 사용하거나 프로그래밍 방식으로 이 작업을 수행하는 방법에 대한 자세한 내용은 다음을 참조하세요 . Lib 파일을 링커 입력으로 사용합니다.
참고 항목
혼합형(네이티브 및 관리) 어셈블리
혼합형 어셈블리 초기화
혼합형 어셈블리에 대한 라이브러리 지원
/link(옵션을 링커로 전달)