다음을 통해 공유


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

Visual Basic에서 형식 라이브러리가 있는 COM 개체에 대한 참조를 추가하려면 COM 라이브러리에 대한 interop 어셈블리를 만들어야 합니다. COM 개체의 멤버에 대한 참조는 interop 어셈블리로 라우팅된 다음 실제 COM 개체로 전달되며, COM 개체가 보내는 응답은 interop 어셈블리로 라우팅된 다음 해당 .NET Framework 응용 프로그램으로 전달됩니다.

COM 개체에 대한 형식 정보를 .NET 어셈블리에 포함하여 interop 어셈블리를 사용하지 않고도 COM 개체를 참조할 수 있습니다. 형식 정보를 포함하려면 COM 개체에 대한 참조에 대해 Embed Interop Types 속성을 True로 설정합니다. 명령줄 컴파일러를 사용하여 컴파일하는 경우 /link 옵션을 사용하여 COM 라이브러리를 참조합니다. 자세한 내용은 /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의 위치가 아직 검색 경로에 포함되어 있지 않고 현재 디렉터리가 Tlbimp가 있는 디렉터리가 아닌 경우 Tlbimp의 위치를 검색 경로에 추가합니다.

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

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

    • 정보가 있어야 할 네임스페이스의 이름과 위치

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

    코드 예제는 다음과 같습니다.

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

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

참고 항목

작업

연습: COM 개체를 사용한 상속 구현(Visual Basic)

상호 운용성 문제 해결(Visual Basic)

참조

Tlbimp.exe(형식 라이브러리 가져오기)

Tlbexp.exe(형식 라이브러리 내보내기)

Imports 문(.NET 네임스페이스 및 형식)

기타 리소스

COM Interop(Visual Basic)