Visual Studio Software Bit Error) 32비트, 64비트의 ActiveX/dll 파일 호출 오류 해결 방법

반응형

 

Error

한글 컨트롤 (HwpCtrl.ocx) 파일을 COM 구성 요소에 수동으로 추가하려니 에러 발생

 

~~~을(를) 자동으로 등록하지 못했습니다.


원인 파악

원래대로라면 COM 구성 요소에 자동적으로 추가되어 있어야 할 것이 없다.

자세히 살펴봐보자. COM 구성 요소에 있는 것들은 경로가 system32 폴더에 밀집되어 있는 것을 확인할 수 있다.

 

이는 즉, 64비트의 COM 구성 요소임을 의미한다는 것이다.

내가 수동으로 추가하려는 ocx 파일은 32비트이기에 호출할 수 없는 이슈가 발생했었던 것.

그렇다면 32비트 COM 구성 요소를 사용하려면 어떻게 해야 할까?

 

실질적인 해결 방법은 아니지만, 우회적으로 해결 방법을 알아 냈다.

내가 사용하는 IDE 툴 버전은 Visual Studio 2022.

즉, 비주얼 스튜디오 2022는 64비트 소프트웨어이다.

바꿔 말하면, 64비트의 COM 구성 요소를 사용할 수 있다는 것이고,

32비트 COM 구성 요소를 사용하려면 32비트 소프트웨어를 사용하여 호출해야 된다는 의미이다.

 

찾아본 결과, Visual Studio 2019는 32비트 소프트웨어이다.

비주얼 스튜디오 19를 설치하고 32비트 COM 구성 요소를 호출해보았다.


해결

  • 32비트의 ActiveX / DLL 파일 호출하기
  • Visual Studio 2019 실행
  • 문제가 발생했던 COM 구성 요소 호출 (HwpCtrl Control)

 

정상적으로 호출된다!

정리하자면, 실질적인 해결방법은 아니지만 제공하는 소프트웨어의 비트를 맞추면된다.

  • 32비트의 ActiveX / DLL 작업 시 : Visual Studio 2019 로 작업
  • 64비트의 ActiveX / DLL 작업 시 : Visual Studio 2022 로 작업

 

32/64비트 둘 다 동시에 같이 사용하려면 조금 번거롭지만

만약 32비트의 구성요소를 사용하려면 비주얼 스튜디오 2019로 컨트롤러를 추가하고,

비주얼 스튜디오 2022로 해당 프로젝트를 불러와서 작업하면된다.

단점으로는 폼 디자인창을 볼 수 없으며 직접 다 코드로 디자인을 작성해주어야 한다.

이 방법을 모르고 한글 컨트롤을 사용하는 프로젝트를 하나 진행했었는데...

나는 프로젝트가 완성될 때까지 폼 디자인을 한 번도 본 적이 없었고 다 코드로 디자인 코드를 작성했다...

UI 변경할 때마다 좌표 확인하는게 여간 귀찮았었던 기억이 있는데, 진작에 알아볼껄...


참고

성태의 닷넷 이야기 - [질문] Visual Studio 2022에서 '도구 상자 항목 선택'의 'COM 구성 요소' 탭에서 ActiveX 목록이 보이지 않습니다.

반응형