본문 바로가기

Windows/WindowsForm

[ WindowsForm ] ActiveX 를 WindowsForm에서 사용하기

반응형

OCX(ActiveX 컨트롤)를 참조할 때 참조 이름에 "Ax"(예: AxInterop.LibraryName.dll)가 붙는 라이브러리는, ActiveX 컨트롤을 WPF나 Windows Forms 같은 .NET 환경에서 사용할 수 있도록 자동 생성된 래퍼 클래스를 나타냅니다.

 

1. AxInterop 라이브러리의 의미

  1. ActiveX 컨트롤의 래퍼(Wrapper):
    • COM 기반의 ActiveX 컨트롤은 .NET과 바로 호환되지 않습니다.
    • 이를 .NET 환경에서 쉽게 사용할 수 있도록 COM Interop 기능이 ActiveX 컨트롤의 래퍼 클래스를 생성합니다.
    • AxInterop 라이브러리는 ActiveX 컨트롤의 UI와 상호작용하기 위한 래퍼입니다.
  2. Ax 접두사의 역할:
    • AxInterop 파일은 Windows Forms 환경에서 ActiveX 컨트롤을 사용하기 위한 래퍼입니다.
    • 일반적인 COM Interop 라이브러리(Interop.LibraryName.dll)와는 달리, ActiveX 컨트롤의 시각적 컴포넌트(UI)와 관련된 기능도 포함합니다.
    • 예를 들어, ActiveX 컨트롤을 Windows Forms 컨테이너에 배치하거나, 이벤트를 연결할 때 필요한 추가 클래스 및 메서드를 제공합니다.
  3. Interop vs AxInterop:
    • Interop.LibraryName.dll: COM 인터페이스 및 메서드 호출을 관리하는 일반적인 인터페이스 라이브러리입니다.
    • AxInterop.LibraryName.dll: ActiveX 컨트롤의 UI 요소와 통합하기 위해 생성된 추가 래퍼입니다. 주로 Windows Forms에서 ActiveX 컨트롤을 사용할 때 필요합니다.

 

2. AxInterop 라이브러리가 생성되는 과정

  1. Visual Studio에서 ActiveX 컨트롤을 참조하거나 추가할 때, COM Interop 기능이 자동으로 AxInterop 및 Interop DLL을 생성합니다.
  2. 이 라이브러리는 프로젝트의 bin 폴더에 자동으로 복사되며, 해당 ActiveX 컨트롤과 .NET 간의 통신을 지원합니다.

 

3. AxInterop 라이브러리 사용 예제

ActiveX 컨트롤 등록 및 참조

  1. ActiveX 컨트롤(OCX 파일)을 시스템에 등록:
   regsvr32 yourcontrol.ocx
  1. Visual Studio에서 프로젝트를 열고 COM 참조 추가:
    • 프로젝트 > 참조 추가 > COM 탭에서 ActiveX 컨트롤을 선택.

Windows Forms에서 ActiveX 컨트롤 사용

  1. ActiveX 컨트롤을 툴박스에 추가:
    • 도구 상자 > 항목 선택 > COM 컴포넌트 탭에서 ActiveX 컨트롤 선택.
  2. 컨트롤을 폼에 드래그 앤 드롭하면 AxInterop DLL이 자동으로 생성됩니다.

코드에서 ActiveX 컨트롤 사용

아래는 ActiveX 컨트롤의 메서드와 속성을 사용하는 간단한 예제입니다.

using System;
using System.Windows.Forms;

namespace ActiveXExample
{
    public partial class MainForm : Form
    {
        // ActiveX 컨트롤 변수 선언
        private AxYourActiveXControl axControl;

        public MainForm()
        {
            InitializeComponent();

            // ActiveX 컨트롤 초기화 및 설정
            axControl = new AxYourActiveXControl();
            axControl.CreateControl();
            this.Controls.Add(axControl);

            // ActiveX 메서드 호출
            axControl.SomeMethod();
        }
    }
}

 

4. AxInterop 라이브러리의 주요 용도

  • ActiveX 컨트롤의 UI와 상호작용.
  • Windows Forms 애플리케이션에서 ActiveX 이벤트 처리.
  • 기존 COM 기반 ActiveX 컨트롤을 .NET 프로젝트에 통합.

 

5. 주의 사항

  1. 32비트/64비트 호환성:
    • ActiveX 컨트롤은 32비트로 작성된 경우가 많으므로, 프로젝트 빌드 설정을 x86으로 변경해야 할 수 있습니다.
  2. WPF에서 ActiveX 사용:
    • WPF는 기본적으로 ActiveX를 직접 지원하지 않습니다.
    • WindowsFormsHost를 사용해 Windows Forms와 ActiveX를 통합하는 방식으로 사용 가능합니다.
  3. 보안 문제:
    • ActiveX는 보안상 취약점이 많으므로 최신 애플리케이션에서는 사용을 지양하고, 가능한 경우 대체 기술을 사용하는 것이 권장됩니다.

AxInterop 라이브러리는 주로 Windows Forms와 ActiveX 컨트롤 통합에 사용된다는 점을 기억하세요.

반응형