Comdlg32.dll은 '공통 컨트롤 라이브러리(Common Controls Library)'로 불리는 시스템 파일로, 다양한 Windows 설정 정보와 기능 함수를 저장하고 있습니다. 이 파일은 Windows에서 실행되는 수많은 프로그램이 공통으로 사용하지만, 그만큼 손상되거나 깨지기 쉬운 파일이기도 합니다.
파일에 문제가 생기면 프로그램 시작 시 다음과 같은 오류 메시지가 나타날 수 있습니다.
- 프로그램 시작 오류: Comctl32.dll 파일을 시작할 수 없습니다.
- 프로그램 시작 오류: Comdlg32.dll 파일을 시작할 수 없습니다.
- 프로그램 시작 오류: Shell32.dll 파일을 시작할 수 없습니다.
- 프로그램 시작 오류: Lz32.dll 파일을 시작할 수 없습니다.
- 프로그램 시작 오류: Version.dll 파일을 시작할 수 없습니다.
- 프로그램 시작 오류: Winmm.dll 파일을 시작할 수 없습니다.
오류의 원인
이 오류는 일부 프로그램이 설치 과정에서 Windows의 원본 시스템 파일을 자체 버전의 파일로 덮어쓰면서 발생합니다. 즉, Windows의 Commctrl.dll, Commdlg.dll, Shell.dll, Lzexpand.dll, Ver.dll, Mmsystem.dll 파일 중 하나가 다른 프로그램의 파일로 대체되었을 가능성이 높습니다. 서로 다른 버전의 DLL 파일이 충돌하면 프로그램이 정상적으로 파일을 읽지 못해 위와 같은 오류가 나타나는 것입니다.
오류 해결 방법
Windows XP 사용자 – KB884883 업데이트 설치
서로 다른 두 버전의 DLL 파일을 동시에 사용하려는 프로그램이 있으면 시스템이 혼란을 겪으면서 이 오류가 발생합니다. 이 경우 Microsoft에서 제공하는 KB884883 업데이트를 다운로드하여 설치하면 됩니다. 단, 이 업데이트는 SP1, SP2, SP3가 적용된 환경에서만 사용할 수 있습니다.
서비스 팩 없이 순수 XP만 사용 중이라면, 먼저 최신 서비스 팩으로 업그레이드한 뒤 KB884883 업데이트를 설치하고 PC를 재시작하세요. 이 절차를 거치면 대부분의 경우 오류가 해결됩니다.
Windows 98 사용자 – SysBackup 폴더에서 파일 복사
프로그램 시작 오류: Comdlg32.dll 파일을 시작할 수 없습니다. 문제를 확인하려면 해당 파일을 점검하십시오.
Windows 98에서는 위와 같은 메시지가 표시될 가능성이 높습니다. 이 경우 백업 폴더(SysBackup)에 보관된 원본 파일을 시스템 폴더로 복사하여 손상된 파일을 교체해야 합니다.
먼저 오류 메시지에 표시된 파일에 해당하는 원본 파일을 찾아야 합니다. 아래 안내에서 <name> 부분을 오류 메시지에 나온 파일에 맞는 이름으로 바꾸세요. 해당 파일은 다음 중 하나입니다.
- Commctrl.dll → Comctl32.dll 용
- Commdlg.dll → Comdlg32.dll 용
- Shell.dll → Shell32.dll 용
- Lzexpand.dll → Lz32.dll 용
- Ver.dll → Version.dll 용
- Mmsystem.dll → Winmm.dll 용
참고: Windows 98이 정상적으로 부팅된다면 '시스템 파일 검사기(System File Checker)' 도구를 사용해 손상된 파일을 원본 파일의 새 사본으로 교체할 수 있습니다. 사용 방법은 [시작] → [도움말] → [색인] 탭에서 "system file checker"를 입력한 후 [표시]를 클릭하고, '시스템 파일 검사기 사용' 항목을 더블클릭하면 확인할 수 있습니다.
복구 절차는 간단합니다. 위 목록에서 확인한 파일(<name>)을 C:\Windows\Sysbckup 폴더에서 C:\Windows\System 폴더로 복사하세요. 이렇게 하면 손상되었거나 읽을 수 없게 된 파일이 정상 파일로 교체되어, 시스템이 필요할 때 해당 DLL을 다시 읽을 수 있게 되고 오류도 사라집니다.
추가 권장 사항 – 레지스트리 클리너 활용
DLL 오류가 반복적으로 나타나는 큰 이유 중 하나는 Windows 레지스트리 데이터베이스에 저장된 'DLL 파일 경로 참조(DLL File Path References)' 목록이 손상되기 때문입니다. 레지스트리는 PC 운영에 필요한 방대한 정보를 저장하고, 시스템이 각종 설정과 데이터를 빠르게 불러올 수 있도록 돕는 핵심 데이터베이스입니다. 특히 DLL 경로 참조 목록은 응용 프로그램이 실행에 필요한 파일을 로딩할 때 사용되므로, 이 목록이 온전하게 유지되는 것이 매우 중요합니다.
그런데 많은 컴퓨터에서 이 목록이 시간이 지나며 손상되어, Windows가 필요한 DLL 파일을 읽지 못하는 상황이 발생합니다. 이를 해결하려면 신뢰할 수 있는 레지스트리 클리너를 실행해 전체 목록을 스캔하고, 손상되거나 잘못된 설정을 자동으로 복구하는 것이 좋습니다. 정기적인 레지스트리 관리는 이런 DLL 오류를 예방하는 데도 큰 도움이 됩니다.