비관리 코드와의 상호 운용Interoperating with unmanaged code

.NET Framework를 기반으로 COM 구성 요소, COM+ 서비스, 외부 형식 라이브러리 및 여러 가지 운영 체제 서비스와 상호 작용할 수 있습니다.The .NET Framework promotes interaction with COM components, COM+ services, external type libraries, and many operating system services. 관리 개체 모델과 관리되지 않는 개체 모델 간에는 데이터 형식, 메서드 시그니처 및 오류 처리 메커니즘이 달라집니다.Data types, method signatures, and error-handling mechanisms vary between managed and unmanaged object models. .NET Framework 구성 요소와 비관리 코드 간에 상호 운용을 간소화하고 마이그레이션 경로를 줄이기 위해 공용 언어 런타임은 클라이언트 및 서버에서 둘 다 이러한 개체 모델의 차이점을 숨깁니다.To simplify interoperation between .NET Framework components and unmanaged code and to ease the migration path, the common language runtime conceals from both clients and servers the differences in these object models.

런타임 제어를 기반으로 실행되는 코드를 관리 코드라고 합니다.Code that executes under the control of the runtime is called managed code. 이와 달리 런타임 외부에서 실행되는 코드를 비관리 코드라고 합니다.Conversely, code that runs outside the runtime is called unmanaged code. 비관리 코드로는 COM 구성 요소, ActiveX 인터페이스, Windows API 함수 등이 있습니다.COM components, ActiveX interfaces, and Windows API functions are examples of unmanaged code.

단원 내용In this section

.NET Framework에 COM 구성 요소 노출Exposing COM Components to the .NET Framework
.NET Framework 애플리케이션에서 COM 구성 요소를 사용하는 방법을 설명합니다.Describes how to use COM components from .NET Framework applications.

.NET Framework 구성 요소를 COM에 노출Exposing .NET Framework Components to COM
COM 애플리케이션에서 .NET Framework 구성 요소를 사용하는 방법을 설명합니다.Describes how to use .NET Framework components from COM applications.

관리되지 않는 DLL 함수 사용Consuming Unmanaged DLL Functions
플랫폼 호출을 사용하여 관리되지 않는 DLL 함수를 호출하는 방법을 설명합니다.Describes how to call unmanaged DLL functions using platform invoke.

interop 마샬링Interop Marshaling
COM interop 및 플랫폼 호출에 대한 마샬링을 설명합니다.Describes marshaling for COM interop and platform invoke.

방법: HRESULT 및 예외 매핑How to: Map HRESULTs and Exceptions
실행과 HRESULT 간 매핑을 설명합니다.Describes the mapping between exceptions and HRESULTs.

동일 형식 및 포함된 Interop 형식Type Equivalence and Embedded Interop Types
COM 형식에 대한 형식 정보가 어셈블리에 포함되는 방식과 공용 언어 런타임에서 포함된 COM 형식이 동일한지 결정하는 방법을 설명합니다.Describes how type information for COM types is embedded in assemblies, and how the common language runtime determines the equivalence of embedded COM types.

방법: Tlbimp.exe를 사용하여 주 Interop 어셈블리 생성How to: Generate Primary Interop Assemblies Using Tlbimp.exe
Tlbimp.exe(형식 라이브러리 가져오기)를 사용하여 주 interop 어셈블리를 생성하는 방법에 대해 설명합니다.Describes how to produce primary interop assemblies using Tlbimp.exe (Type Library Importer).

방법: 주 Interop 어셈블리 등록How to: Register Primary Interop Assemblies
주 interop 어셈블리를 프로젝트에서 참조할 수 있도록 등록하는 방법에 대해 설명합니다.Describes how to register the primary interop assemblies before you can reference them in your projects.

등록이 필요 없는 COM interopRegistration-Free COM Interop
COM interop에서 Windows 레지스트리를 사용하지 않고 구성 요소를 활성화하는 방법에 대해 설명합니다.Describes how COM interop can activate components without using the Windows registry.

방법: 등록이 필요 없는 활성화를 위한 .NET Framework 기반 COM 구성 요소 구성How to: Configure .NET Framework-Based COM Components for Registration-Free Activation
애플리케이션 매니페스트를 만드는 방법과 구성 요소 매니페스트를 만들고 포함하는 방법에 대해 설명합니다.Describes how to create an application manifest and how to create and embed a component manifest.

COM 래퍼COM Wrappers
COM interop에서 제공하는 래퍼에 대해 설명합니다.Describes the wrappers provided by COM interop.