혼합형(네이티브 및 관리) 어셈블리
혼합형 어셈블리에는 관리되지 않는 기계어 명령과 MSIL 명령이 모두 포함될 수 있습니다. 이렇게 하면 전혀 관리되지 않는 구성 요소와의 호환성을 유지한 채 이 어셈블리에서 .NET 구성 요소를 호출하거나 .NET 구성 요소에서 이 어셈블리를 호출할 수 있습니다. 혼합형 어셈블리를 사용하면 관리되는 기능과 관리되지 않는 기능이 함께 사용되는 응용 프로그램을 작성할 수 있습니다. 이러한 점에서 혼합형 어셈블리는 기존 Visual C++ 응용 프로그램을 .NET 플랫폼으로 마이그레이션하는 데 적합합니다.
예를 들어, /clr 컴파일러 스위치를 사용하여 모듈 하나를 컴파일하는 것만으로도 관리되지 않는 함수로만 구성된 기존 응용 프로그램을 .NET 플랫폼에서 사용할 수 있습니다. 이 모듈은 응용 프로그램의 나머지 부분과 계속 호환 상태를 유지하면서 .NET 기능을 사용할 수 있습니다. 이와 같이 점진적이고 단위적인 방식으로 응용 프로그램을 .NET 플랫폼에 맞도록 변환할 수 있습니다. 동일한 파일 내에서 각 함수별로 관리되는 컴파일 또는 관리되지 않는 컴파일을 선택할 수도 있습니다. managed, unmanaged를 참조하십시오.
Visual C++에서는 세 가지 형식의 관리되는 어셈블리(혼합형, 순수 및 확인 가능) 생성을 지원합니다. 마지막 두 가지 형식의 어셈블리에 대한 내용은 순수형 및 안정형 코드(C++/CLI)을 참조하십시오.
단원 내용
방법: /clr로 마이그레이션
응용 프로그램에서 .NET 기능을 도입하거나 업그레이드하는 데 필요한 권장 단계에 대해 설명합니다.방법: /clr을 사용하여 MFC 및 ATL 코드 컴파일
공용 언어 런타임을 대상으로 기존 MFC 및 ATL 프로그램을 컴파일하는 방법에 대해 설명합니다.혼합형 어셈블리 초기화
"로더 잠금" 문제와 해결책에 대해 설명합니다.혼합형 어셈블리에 대한 라이브러리 지원
/clr 컴파일에 네이티브 라이브러리를 사용하는 방법에 대해 설명합니다.Interop에 대한 성능 고려 사항(C++)
혼합형 어셈블리 및 데이터 마샬링이 성능에 미치는 영향에 대해 설명합니다.응용 프로그램 도메인 및 Visual C++
응용 프로그램 도메인과 관련된 Visual C++ 지원에 대해 설명합니다.이중 썽킹(C++)
관리되지 않는 함수에 대한 네이티브 진입점이 성능에 미치는 영향에 대해 설명합니다./clr로 빌드한 COM 개체를 사용할 때 CLR 종료 시 예외 방지
/clr을 사용하여 컴파일한 COM 개체를 사용하는 관리되는 응용 프로그램을 올바르게 종료하는 방법에 대해 설명합니다.방법: CRT 라이브러리 DLL에 대한 종속성을 제거하여 부분적으로 신뢰할 수 있는 응용 프로그램 만들기
msvcm90.dll에 대한 종속성을 제거하고 Visual C++를 사용하여 부분적으로 신뢰할 수 있는 공용 언어 런타임 응용 프로그램을 만드는 방법에 대해 설명합니다.
혼합형 어셈블리에 대한 자세한 코딩 지침을 보려면 https://msdn.microsoft.com/ko-kr/netframework/default.aspx?pull=/library/ko-kr/dndotnet/html/manunmancode.asp에서 MSDN 문서 "An Overview of Managed/Unmanaged Code Interoperability"를 참조하십시오.