본문 바로가기
개발

VC++ 2017에서 개발한 COM DLL 등록 문제

by 솜씨제이 2018. 11. 29.

Visual C++ 2017에서 개발한 COM DLL을 Windows XP에서 등록하는 경우 아래처럼 에러가 발생한다.

이 문제는 VC++의 컴파일 옵션에 /Zc:threadSafeInit-를 추가하면 해결할 수 있다.

/Zc:threadSafeInit 옵션은 정적 로컬 변수를 자동으로 스레드에서 안전하게 초기화해주는 옵션으로 Windows Vista 이상에서 제공하는 기능을 사용한다. VC++ 2015 이상부터 제공하는 옵션으로 기본적으로 활성화되어 있다. Windows XP나 Windows Server 2003 이하에서는 제공하지 않는 기능이므로 문제가 생기는 것으로 보인다.

Visual C++ 2015에서는 수정되어 업데이트 되었다고 하는데 Visual C++ 2017에서는 수정이 안 되었고 Windows XP 지원이 종료된 시점이라 앞으로도 수정이 안 될 가능성이 높아 보인다.

'개발' 카테고리의 다른 글

GDI+ Bitmap 복사하기 C++  (1) 2021.01.01
[MySQL] 서브 쿼리(하위 질의)  (0) 2018.08.22
[MySQL] 테이블 결합하기(JOIN)  (0) 2018.08.01
[MySQL] 추출 결과 합치기(UNION)  (0) 2018.08.01
[MySQL] 논리 연산자 우선 순위  (0) 2018.08.01

댓글