1. 개요
0xc000007b는 Microsoft Windows의 NTSTATUS오류 코드로 STATUS_INVALID_IMAGE_FORMAT: 올바르지 않은 이미지[1]를 의미한다.주로 32비트 환경에서 사용되는 프로그램 또는 게임을 64비트에서 사용할 때 나타나는 오류 또는 비주얼 베이직 등으로 만들어진 프로그램에서 필수 DLL이 없는 경우 발생하거나 파일이 손상되었을 때 발생하는 런타임 오류지만 어떤 파일이 손상되었는지는 디버거 등을 사용하지 않는다면 알려주지 않으므로 해결에 애를 매우 많이 먹는 에러이다. 그런 탓에 매우 많은 종류의 해결방법이 돌아다니지만 경우에 따라서는 그 방법들을 모두 시도해도 해결되지 않기도 한다.
2. 해결법
- 1. 명령 프롬프트를 관리자 권한으로 실행하고 DISM /Online /Cleanup-Image /RestoreHealth 를 입력해서 시스템을 자동으로 스캔하고 수리한다. 빠진 것을 다운받기 위해 62.3%에서 장시간 정체되는 사례가 많은데 최대한 기다려본다.
- 2. .NET Framework를 제거하고 최신 버전으로 설치한다. 마이크로소프트 공식 다운로드 링크
- 3. Visual Studio C++ Redistributable를 설치한다. 모든 버전을, 그리고 x64든 x86든 빠짐없이 설치한다. 이미 설치되어 있다면 '복구'를 한다.
- 4. 프로세스 모니터를 설치하고 마이크로소프트 공식 다운로드 링크 위 영상의 안내를 따른다.
2.1. DirectX 업데이트
DirectX를 최신 버전으로 업데이트 하는 방법이다. 보통 해당 문제는 다이렉트 파일 DLL에 문제가 생겨서 발생하는 경우가 꽤 있기 때문. 최신 버전은 마이크로소프트 홈페이지에서 받을 수 있다.2.2. All in One Runtimes 패키지 설치
위의 세 방법이 모두 통하지 않을 경우 All in One Runtimes runtimes 패키지를 설치해서 빠진 런타임 종류를 모두 설치할 수 있다. 해당 패키지는 독일의 컴퓨터 커뮤니티에서 개발한 것으로 단순히 필수 런타임 패키지들을 모두 모아서 빠진 것들을 체크해서 한번에 설치할 수 있게 만든 패키지이다. 하지만 ShockWave 플레이어같이 딱히 필요하지 않은 것도 같이 있으니 해당 부분은 체크를 해제하면 된다.2.3. 그래픽 드라이버 및 윈도우즈 업데이트
보통 저 에러는 그래픽 드라이버나 윈도우즈 문제로 발생하지는 않지만 이 방법도 대개 인터넷에서 해결법이라고 돌아다니는 것들 중 하나이다.2.4. xinput1_3.dll 삭제 후 새로 추가
자신의 운영체제에 맞는 폴더[2]에서 xinput1_3.dll을 삭제한다. 이후, Dll-files.com 같은 곳에서 xinput1_3.dll을 구해서 다시 넣어준다. 이 때 xinput1_3.dll은 자신의 운영체제에 맞는 버전을 선택해서 다운로드 받아야한다. 64비트 체제에서 32비트 파일을 넣어봐야 소용없다.2.5. dx32rt/dxrt64 패치
dx32rt나 dxrt64를 패치해서 해결하는 방법.2.6. 관리자 권한으로 실행하기
필요 파일이 있지만 정작 실행권한이 없어서 해당 오류가 발생하기도 한다.2.7. 호환성 모드로 실행하기
필수 DLL 파일은 모두 있지만 정작 프로그램 자체가 이용자의 윈도우즈에 호환이 되지 않는 사례도 있다.3. 해당 문제가 주로 발생하는 게임
- DiRT 3
- GTA V
- 디아블로 3
- 딜루비오
- 레드 데드 리뎀션
- 리니지M
- 바이오쇼크
- 배틀필드 4
- 어쌔신 크리드 4: 블랙 플래그
- 에픽 게임 런쳐
- 엘더스크롤 5: 스카이림
- 와치독
- 차일드 오브 라이트
- 콜 오브 듀티: 고스트
- 그 외에 게임 엔진인 유니티나 스타크래프트의 맵을 만드는 데에 사용되는 SCM Draft 2도 해당 오류가 발생하기도 한다.