방법: Visual Basic에서 COM 개체 참조

Visual Basic에서 형식 라이브러리가 있는 COM 개체에 대한 참조를 추가하려면 COM 라이브러리에 대한 interop 어셈블리를 생성해야 합니다. COM 개체의 멤버에 대한 참조는 interop 어셈블리로 라우팅된 다음, 실제 COM 개체로 전달됩니다. COM 개체의 응답은 interop 어셈블리로 라우팅되고 .NET Framework 애플리케이션으로 전달됩니다.

.NET 어셈블리에 COM 개체의 형식 정보를 포함하여 interop 어셈블리를 사용하지 않고 COM 개체를 참조할 수 있습니다. 형식 정보를 포함하려면 COM 개체에 대한 참조로 Embed Interop Types 속성을 True로 설정합니다. 명령줄 컴파일러를 사용하여 컴파일하는 경우 COM 라이브러리를 참조하는 /link 옵션을 사용합니다. 자세한 내용은 -link(Visual Basic)를 참조하세요.

Visual Basic은 IDE(통합 개발 환경)에서 형식 라이브러리에 대한 참조를 추가할 때 interop 어셈블리를 자동으로 만듭니다. 명령줄에서 작업할 때 Tlbimp 유틸리티를 사용하여 interop 어셈블리를 수동으로 만들 수 있습니다.

COM 개체에 대한 참조를 추가하려면

  1. 프로젝트 메뉴에서 참조 추가를 선택한 다음, 대화 상자에서 COM 탭을 클릭합니다.

  2. COM 개체 목록에서 사용할 구성 요소를 선택합니다.

  3. interop 어셈블리에 대한 액세스를 간소화하려면 COM 개체를 사용할 클래스 또는 모듈의 맨 위에 Imports 문을 추가합니다. 예를 들어 다음 코드 예제에서는 Microsoft InkEdit Control 1.0 라이브러리에서 참조되는 개체의 네임스페이스 INKEDLib를 가져옵니다.

    Imports INKEDLib
    
    Class Sample
        Private s As IInkCursor
    
    End Class
    

Tlbimp를 사용하여 interop 어셈블리를 만들려면

  1. 이 위치가 검색 경로의 일부가 아니고 현재 위치가 있는 디렉터리에 있지 않은 경우 Tlbimp의 위치를 검색 경로에 추가합니다.

  2. 명령 프롬프트에서 Tlbimp를 호출하여 다음 정보를 제공합니다.

    • 형식 라이브러리를 포함하는 DLL의 이름 및 위치

    • 정보를 배치해야 하는 네임스페이스의 이름 및 위치

    • 대상 interop 어셈블리의 이름 및 위치

    다음 코드는 예제를 제공합니다.

    Tlbimp test3.dll /out:NameSpace1 /out:Interop1.dll  
    

    Tlbimp를 사용하여 등록되지 않은 COM 개체에 대해서도 형식 라이브러리에 대한 interop 어셈블리를 만들 수 있습니다. 그러나 interop 어셈블리에서 참조하는 COM 개체는 사용할 컴퓨터에 올바르게 등록되어야 합니다. Windows 운영 체제에 포함된 Regsvr32 유틸리티를 사용하여 COM 개체를 등록할 수 있습니다.

참고 항목