다음을 통해 공유


.NET Compact Framework 구성 요소에 COM 노출

업데이트: 2007년 11월

.NET Compact Framework 버전 2.0부터 관리 코드에서 COM 개체를 호출할 수 있습니다. 또한 전체 .NET Framework에 제공된 형식 라이브러리 가져오기(Tlbimp.exe)를 사용하여 형식 라이브러리를 가져올 수 있으며 Visual Studio에서는 프로젝트에 형식 라이브러리 참조를 추가할 수 있습니다. 가져온 형식 라이브러리는 메타데이터에 설명된 COM 형식 정의를 포함하므로 interop 어셈블리라고도 합니다.

관리 코드에 원래 할당된 네이티브 코드의 메모리가 네이티브 함수 호출이 반환된 이후에도 네이티브 코드 라이브러리에 계속 남아 있는 경우, 가비지 수집기에서 메모리를 이동하거나 수집하지 않도록 네이티브 라이브러리 개체를 관리 코드에 고정시켜야 합니다. GCHandle 구조체를 사용하여 개체를 고정할 수 있습니다.

관리 코드는 네이티브 운영 체제에 지정된 바이트 범위를 기준으로 데이터 형식 맞춤, 즉 압축 프로세스를 수행해야 합니다.

.NET Compact Framework에서 COM 개체를 호출하기 위한 작업에는 다음의 세 가지가 있습니다.

  1. COM 인터페이스 및 형식에 대해 관리되는 정의를 만듭니다.

  2. 프로젝트에서 해당 정의를 참조합니다.

  3. COM 인터페이스 및 형식을 관리되는 형식으로 사용합니다.

관리되는 정의를 "하드 코드로 작성"할 수도 있습니다.

Interop 어셈블리 참조

Interop 어셈블리는 형식 라이브러리 가져오기 또는 Visual Studio에 의해 생성된 메타데이터에 설명되어 있는 COM 형식 정의가 들어 있는 가져온 형식 라이브러리입니다.

프로젝트 빌드 시 interop 어셈블리를 참조하려면 명령줄 컴파일러에서 /r: 스위치를 사용합니다. Visual Studio에서 형식 라이브러리에 대한 참조를 추가하면 이 작업이 자동으로 수행됩니다.

COM 형식을 관리되는 형식으로 사용

기본 인터페이스의 멤버가 가져오기 중에 클래스에 추가됩니다. 또한 IDispatch 호출과 IUnknown 호출, QueryInterface 및 COM 참조 횟수는 자동으로 처리되며 실패 HRESULT 값은 자동으로 예외에 매핑됩니다.

COM 형식을 가져온 후 이 형식을 다음과 같은 프로그래밍 작업에서 다른 관리되는 형식으로 사용할 수 있습니다.

  • new 키워드(Visual Basic의 경우 New)를 사용하여 인스턴스를 만듭니다.

  • 예외를 catch합니다.

  • 클래스를 통해 직접 호출합니다.

  • IDispatch 스타일 호출과 IUnknown 스타일 호출 사이에서 선택하지 않도록 합니다.

  • 필요에 맞게 특정 인터페이스로 캐스팅합니다.

참고 항목

기타 리소스

.NET Compact Framework의 상호 운용성