다음을 통해 공유


연습: Visual Basic을 사용하여 COM 개체 만들기

새 응용 프로그램이나 구성 요소를 만들 경우 .NET Framework 어셈블리를 만드는 것이 가장 좋습니다. 그러나 Visual Basic에서는 .NET Framework 구성 요소를 COM에 쉽게 노출할 수도 있습니다. 이렇게 하면 COM 구성 요소가 필요한 이전 응용 프로그램 제품군에 대한 새 구성 요소를 제공할 수 있습니다. 이 연습에서는 COM 클래스 템플릿을 사용하거나 사용하지 않고서 Visual Basic을 통해 .NET Framework 개체를 COM 개체로 노출하는 방법을 보여 줍니다.

COM 개체를 노출하는 가장 쉬운 방법은 COM 클래스 템플릿을 사용하는 것입니다. COM 클래스 템플릿은 새 클래스를 만든 다음 프로젝트를 구성하여 클래스 및 상호 운용성 계층을 COM 개체로서 생성하고 운영 체제에 등록합니다.

참고

Visual Basic에서 만든 클래스를 COM 개체로 노출하여 비관리 코드에서 사용할 수도 있지만 이 개체는 진정한 COM 개체가 아니며 Visual Basic에서 사용할 수 없습니다. 자세한 내용은 .NET Framework 응용 프로그램의 COM 상호 운용성(Visual Basic)을 참조하십시오.

참고

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

COM 클래스 템플릿을 사용하여 COM 개체를 만들려면

  1. 파일 메뉴에서 새 프로젝트를 클릭하여 새 Windows 응용 프로그램 프로젝트를 엽니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 필드에서 Windows가 선택되었는지 확인합니다. 템플릿 목록에서 클래스 라이브러리를 선택한 다음 확인을 클릭합니다. 새 프로젝트가 표시됩니다.

  3. 프로젝트 메뉴에서 새 항목 추가를 선택합니다. 새 항목 추가 대화 상자가 표시됩니다.

  4. 템플릿 목록에서 COM 클래스를 선택하고 추가를 클릭합니다. Visual Basic에서 새 클래스를 추가하고 COM interop에 대한 새 프로젝트를 구성합니다.

  5. 속성, 메서드 및 이벤트와 같은 코드를 COM 클래스에 추가합니다.

  6. 빌드 메뉴에서 ClassLibrary1 빌드를 선택합니다. Visual Basic에서 어셈블리를 빌드하고 운영 체제에 COM 개체를 등록합니다.

COM 클래스 템플릿을 사용하지 않고 COM 개체 만들기

COM 클래스 템플릿을 사용하지 않고 수동으로 COM 클래스를 만들 수 있습니다. 이는 명령줄에서 작업하거나 COM 개체를 정의하는 방법을 보다 자세하게 제어하려는 경우에 유용한 방법입니다.

COM 개체를 생성하여 프로젝트를 설정하려면

  1. 파일 메뉴에서 프로젝트를 클릭하여 새 Windows 응용 프로그램 프로젝트를 엽니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 필드에서 Windows가 선택되었는지 확인합니다. 템플릿 목록에서 클래스 라이브러리를 선택한 다음 확인을 클릭합니다. 새 프로젝트가 표시됩니다.

  3. 솔루션 탐색기에서 프로젝트를 오른쪽 마우스 단추로 클릭하고 속성을 클릭합니다. 프로젝트 디자이너가 표시됩니다.

  4. 컴파일 탭을 클릭합니다.

  5. COM Interop 등록 확인란을 선택합니다.

클래스에 코드를 설정하여 COM 개체를 만들려면

  1. 솔루션 탐색기에서 Class1.vb를 두 번 클릭하여 해당 코드를 표시합니다.

  2. 클래스 이름을 ComClass1으로 바꿉니다.

  3. 다음 상수를 ComClass1에 추가합니다. 이러한 상수는 COM 개체가 가져야 하는 GUID(Globally Unique Identifier) 상수를 저장합니다.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. 도구 메뉴에서 GUID 만들기를 클릭합니다. GUID 만들기 대화 상자에서 레지스트리 형식을 클릭한 다음 복사를 클릭합니다. 끝내기를 클릭합니다.

  5. ClassId에 대한 빈 문자열을 GUID로 바꾸고 선행 및 후행 중괄호를 제거합니다. 예를 들어, Guidgen에 의해 제공된 GUID가 "{2C8B0AEE-02C9-486e-B809-C780A11530FE}"일 경우 코드는 다음과 같아야 합니다.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. 다음 예제에 나온 것처럼 InterfaceId 및 EventsId 상수에 대한 이전 단계를 반복합니다.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    

    참고

    GUID가 새 것이며 고유한지 확인합니다. 그렇지 않을 경우 COM 구성 요소가 다른 COM 구성 요소와 충돌할 수 있습니다.

  7. 다음 예제와 같이 ComClass 특성을 ComClass1에 추가하여 클래스 ID, 인터페이스 ID 및 이벤트 ID에 대한 GUID를 지정합니다.

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. COM 클래스에는 매개 변수 없는 Public Sub New() 생성자가 있어야 합니다. 그렇지 않으면 클래스가 올바르게 등록되지 않습니다. 매개 변수 없는 생성자를 클래스에 추가합니다.

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. 속성, 메서드 및 이벤트를 클래스에 추가하고 클래스를 End Class 문으로 종료합니다. 빌드 메뉴에서 솔루션 빌드를 선택합니다. Visual Basic에서 어셈블리를 빌드하고 운영 체제에 COM 개체를 등록합니다.

    참고

    Visual Basic에서 생성한 COM 개체는 진정한 COM 개체가 아니기 때문에 다른 Visual Basic 응용 프로그램에서 사용할 수 없습니다. 해당 COM 개체에 참조를 추가하면 오류가 발생합니다. 자세한 내용은 .NET Framework 응용 프로그램의 COM 상호 운용성(Visual Basic)을 참조하십시오.

참고 항목

작업

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

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

참조

ComClassAttribute

#Region 지시문

기타 리소스

COM Interop(Visual Basic)

.NET Framework 응용 프로그램의 COM 상호 운용성(Visual Basic)