산업기술/MELSEC

[MELSEC] MX Component 4.0 x64에서 ALTCOMCLI.h 에러 처리

야곰야곰+책벌레 2022. 4. 21. 10:46
728x90
반응형
 

[MFC] MX Component 4.0 x64에서 사용하기

Mitsubish의 MX Component를 x64에서 사용할 수 있는 것은 C#으로 가능하지 C++로는 불가능하다. 그렇기 때문에 COM으로 Service를 등록해서 인터페이스를 통한 작업을 할 수밖에 없다. ATL을 이용하여 서버

stormpy.tistory.com

  MX Component를 64비트에서 작업하려다 보면, atlcomcli.h 에러가 발생하는데, 이것은 com 초기화가 되지 않을 때 발생한다. 프로그램을 제대로 했다면, x86으로 컴파일을 하지 않고 x64로 컴파일을 한 뒤에는 지속적으로 해당 에러가 발생하게 된다.

이것은 x64 형식으로 레지스터리가 등록되었기 때문이다. 그래서 Client가 x64로 실행되면 당연히 x64로 등록된 서비스를 호출하게 되고 이것은 x86을 지원하지 않는 mx component 때문에 에러가 발생한다. 그렇기 때문에 x64로 등록된 레지스트를 삭제해야 한다.

우선 해당 com의 uuid를 확인하자. *.idl 파일에서 해당 com의 uuid를 확인한다.

uuid를 복사하여 레스트리 편집기에서 검색한다.

검색하다 보면 LocalServer32가 '....\x64\....' 로 지정되어 있는 레지스트를 찾을 수 있는데, 해당 레지스트를 통째로 삭제하자. 그리고 x86으로 Rebuild 하자. 에러가 사라짐을 알 수 있다. CPU 정보도 정상적으로 받아올 수 있다.

728x90
반응형

'산업기술 > MELSEC' 카테고리의 다른 글

[MELSEC] MX Component 4.0 x64에서 사용하기  (4) 2022.04.19