C++/C#

Visual Studio 64비트 환경에서 32비트 COM(DLL) 사용시 오류

컨텐츠 정보

본문

 

"80040154 클래스가 등록되지 않았습니다. (예외가 발생한 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) 오류로 인해 CLSID가 {40942A6C-1520-4132-BDF8-BDC1F71F547B}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다."

  

COM 구성요소(DLL) 등록시 "ocx를 자동으로 등록하지 못했습니다."


위 메세지들은 64비트 개발환경에서 32비트 COM(DLL)을 사용하려 할때 뜨는 오류 메세지입니다.

C#의 경우에는 Form 화면에 오류메세지가 뜨면서 폼 디자인이 실행되지 않습니다.


구글링 하면 해결방법이 대략 5가지로 검색됩니다.



1. IIS의 경우


다운로드.png


위의 그림과 같이 IIS 실행 -> 응용 프로그램 풀 -> 풀 선택 -> 고급설정 -> 32비트 응용프로그램사용(True) 순서대로 하면 해결됩니다.


2. 응용프로그램의 경우..



위 그림처럼 솔루션 탐색기 창 -> 솔루션명에 마우스 커서를 대로 오른쪽 클릭 -> 팝업메뉴에서 속성 메뉴선택 -> 빌드탭 선택 -> 플랫폼 대상을 x86 으로 선택 하는 순서로 진행하면 됩니다.



3. 컴파일 자체를 64비트로 변경하기




위 그림처럼 32bit를 64bit로 변경합니다.



4. 직접 REGSVR32로 DLL 지정하기


cmd를 관리자 모드로 실행하여 regsvr32 "C:\파일경로\실행.DLL" 형태로 컴파일 파일위치를 지정하여 해결 합니다.



5. 이전 버전으로 롤백하기


위 4가지 방법으로 해결 되지 않을 경우, 그냥 막가파식으로 롤백해서 해결합니다.


윈도우즈 11 버전이 설치된 경우 안타깝지만 윈도우 10으로 롤백해야 합니다.

롤백 절차는 "윈도우즈 업데이트"로 이동 후 하단에 보면 "복구" 메뉴가 보일 겁니다. 복구 메뉴를 누르면 정확하지는 않지만 "윈도우즈10 으로 되돌아가기(?)"와 같은 형태의 메뉴가 있을 것이고 해당 메뉴를 통해 롤백이 됩니다. 그다음 Visual Studio가 최신 버전인 Visual Studio 2022 버전이 설치된 경우, Visual Studio 2019 버전으로 재설치 하면 모든 충돌 문제는 깔끔하게 해결 됩니다.

2019버전은 공식 홈페이지에서 다운로드 받을 수 없습니다. 혹시, 없으신 분을 위해 "커뮤니티" 버전은 아래 첨부파일에 등록해 놓았습니다. Professional과 Enterprise는 없는 관계로 패스하겠습니다 ㅠ 만약 법적으로 문제 되는 거라면 내리도록 하겠습니다.(딴지 걸지말고 우리끼리만 조용히 다운로드해서 사용하기로 해요..ㅋㅋㅠㅠㅋ) 감사합니다.


관련자료

댓글 0
등록된 댓글이 없습니다.
Total 9 / 1 Page
번호
제목
이름

최근글


새댓글


알림 0