순수형 및 안정형 코드 (C++/CLI)Pure and verifiable code (C++/CLI)

.NET 프로그래밍, 시각적 개체에 대 한 C++ Visual Studio 2017에서 사용 하 여 혼합형된 어셈블리 만들기를 지원 합니다 /clr (공용 언어 런타임 컴파일) 컴파일러 옵션입니다.For .NET Programming, Visual C++ in Visual Studio 2017 supports the creation of mixed assemblies by using the /clr (Common Language Runtime Compilation) compiler option. 합니다 /clr: pure: safe 옵션은 Visual Studio 2015에서 더 이상 사용 되지 않으며 Visual Studio 2017에서 지원 되지 않습니다.The /clr:pure and clr:safe options are deprecated in Visual Studio 2015 and unsupported in Visual Studio 2017. 경우에 코드에 안전한 지 확인할 수 있어야 다음을 포팅하는 것이 좋습니다 C#입니다.If your code needs to be safe or verifiable, then we recommend that you port it to C#.

혼합 (/ clr)Mixed (/clr)

혼합형 어셈블리 (컴파일된 /clr), 관리 되지 않는 모두 포함 하 고.NET 기능을 사용할 수 있도록 관리 되는 파트에는 있지만 네이티브 코드가 포함 되어 있습니다.Mixed assemblies (compiled with /clr), contain both unmanaged and managed parts, making it possible for them to use .NET features, but still contain native code. 이렇게 하면 응용 프로그램 및 구성 요소를 업데이트할 전체 프로젝트를 다시 작성 하지 않고도.NET 기능을 사용할 수 있습니다.This allows applications and components to be updated to use .NET features without requiring that the entire project be rewritten. 시각적 개체를 사용 하 여 C++ 관리 되는 혼합 및이 방식으로 네이티브 코드를 호출 C++ Interop입니다.Using Visual C++ to mix managed and native code in this fashion is called C++ Interop. 자세한 내용은 혼합형 (네이티브 및 관리) 어셈블리 하 고 네이티브 및.NET 상호 운용성합니다.For more information, see Mixed (Native and Managed) Assemblies and Native and .NET Interoperability.

P/Invoke를 통해 네이티브 Dll로 관리 되는 어셈블리에서 호출을 컴파일되지 있지만 보안 설정에 따라 런타임에 실패할 수 있습니다.Calls made from managed assemblies to native DLLs via P/Invoke will compile, but may fail at runtime depending on security settings.

컴파일러는 전달 하지만 결과 확인할 수 없는 어셈블리를 코딩 시나리오 중 하나는: 범위 확인 연산자를 사용 하 여 개체 인스턴스를 통해 가상 함수를 호출 합니다.There is one coding scenario that will pass the compiler but that will result in an unverifiable assembly: calling a virtual function through an object instance using the scope resolution operator. 예: MyObj -> A::VirtualFunction();For example: MyObj -> A::VirtualFunction();.

참고자료See also