IT정보공유/C#

c# 64bit OCX (ActiveX) 컨트롤 사용방법

알지오™ 2022. 10. 5.

오랜만에 프로그래밍 관련 포스팅을 합니다. 64Bit OCX를 이용하려하니 단순히 비주얼 스튜디오 툴에서 COM 구성 요소 추가만 한다고 되는게 아니더군요.

 

비주얼 스튜디오  COM 구성 요소 추가


32Bit OCX 였다면 COM 구성 요소 추가만 해주면 손쉽게 됐겠지만 64Bit OCX를 사용하기에는 난이도가 조금 있습니다.

(64Bit OCX의 경우 COM 구성요소에 추가한 후 리스트에는 보여도, 실질적인 UI에 등록을 할 수가 없음)

우선, OCX 등록은 Regsvr32 명령을 이용하여 윈도우 레지스트리에 등록후 사용해야 한다는 것은
알고 계실겁니다.

 

OCX, DLL 레지스트리 등록 명령

 

Regsvr32 "OCX파일명"

Regsvr32 [/u] [/s] "OCX File Name"

/u ocx파일 등록 삭제
/s 등록 메시지 표시하지 않음

 

64비트 OCX 컨트롤 사용 방법


우선, 참고사항으로 비주얼 스튜디오는 32비트 프로그램입니다. 64비트 프로그램을 개발할 수 있지만 툴 자체가 32비트이다 보니 64비트 OCX를 IDE상에서 제어할 수가 없어요. (비주얼 스튜디오 2022부터는 64비트 입니다.)

제가 해맨 부분이 바로 이 부분입니다. 64비트 OCX 컨트롤의 UI를 IDE 상에서 볼수 없다는 점.

그래서 모든 코드는 런타임에서 실행되도록 동적코드로 생성해주고, 위치등도 코드로 설정해줘야 한다.


지금부터 ABC.ocx 라는 64비트 컨트롤을 사용하는 방법에 대해서 설명하도록 하겠습니다.


Aximp.exe (Windows Form ActiveX)를 이용하여 dll 파일 만들기

 

명령프롬프트를 이용하여 아래의 명령어를 실행하고, dll 파일을 생성해야 합니다.

Aximp ABC.ocx


그러면 
ABCLib.dll
AxABCLib.dll 의 네이밍룰을 통해 dll파일이 생성됩니다.

이 두개의 DLL을 프로젝트에 참조시키세요.

 

생성된 DLL을 프로젝트에 참조 추가

 


그리고 소스상에서 생성할 때는

 

AxABCLib abc = new AxABCLib();


등의 코드로 생성시킨 후 사용하시면 됩니다. 

다시한번 말씀드리지만 64Bit OCX Control의 경우에는 OCX UI를 Visual Studio 상에서 표출을 할 수 가없습니다. 코드로 해야되요.

댓글

💲 추천 글