다음을 통해 공유


순수하고 검증 가능한 코드(C++/CLI)

.NET 프로그래밍의 경우 Visual Studio 2017의 Visual C++는 /clr(공용 언어 런타임 컴파일) 컴파일러 옵션을 사용하여 혼합 어셈블리 생성을 지원합니다. /clr:pureclr:safe 옵션은 Visual Studio 2015에서 더 이상 사용되지 않으며 Visual Studio 2017에서는 지원되지 않습니다. 코드가 안전하거나 검증 가능해야 하는 경우 C#으로 이식하는 것이 좋습니다.

혼합(/clr)

혼합 어셈블리(/clr컴파일됨)는 관리되지 않는 부분과 관리되는 파트를 모두 포함하므로 .NET 기능을 사용할 수 있지만 여전히 네이티브 코드가 포함됩니다. 이렇게 하면 전체 프로젝트를 다시 작성하지 않고도 .NET 기능을 사용하도록 애플리케이션 및 구성 요소를 업데이트할 수 있습니다. Visual C++를 사용하여 관리 코드와 네이티브 코드를 이 방식으로 혼합하는 것을 C++ Interop이라고 합니다. 자세한 내용은 혼합(네이티브 및 관리형) 어셈블리네이티브 및 .NET 상호 운용성을 참조하세요.

P/Invoke를 통해 관리되는 어셈블리에서 네이티브 DLL로 수행된 호출은 컴파일되지만 보안 설정에 따라 런타임에 실패할 수 있습니다.

컴파일러를 전달하지만 확인할 수 없는 어셈블리를 생성하는 코딩 시나리오는 범위 확인 연산자를 사용하여 개체 인스턴스를 통해 가상 함수를 호출하는 것입니다. 예: MyObj -> A::VirtualFunction();

참고 항목