블루스크린

DLL·런타임 오류

드라이버 문제

게임 오류

윈도우 오류

프로그램 오류

광고자리 · 글 위

이 글이 다루는 것 0xc000007b는 "응용 프로그램을 올바르게 시작하지 못했습니다"라는 문구와 함께 뜨는 실행 실패 오류입니다. 윈도우 내부적으로는 실행 파일이나 그 파일이 불러오는 DLL의 형식이 맞지 않을 때 반환되는 코드입니다. 이 글은 해결 방법을 순서대로 나열하는 대신, 증상으로 원인을 먼저 좁힌 다음 그 원인에만 해당하는 조치를 하도록 정리했습니다. 각 원인마다 "이 방법이 안 통하는 경우"도 함께 적어, 잘못된 방향으로 시간을 쓰지 않게 했습니다.

목차

  1. 1. 0xc000007b는 정확히 무슨 뜻인가
  2. 2. 증상으로 원인 좁히기 (판별표)
  3. 3. 원인 A. 32비트·64비트 실행 파일 불일치
  4. 4. 원인 B. Visual C++ 재배포 패키지 손상·누락
  5. 5. 원인 C. DirectX 런타임 구성 요소 누락
  6. 6. 원인 D. 시스템 파일 손상
  7. 7. 문제를 정확히 찾아내는 법
  8. 8. 자주 묻는 질문
  9. 9. 확인 환경과 참고 문서

10xc000007b는 정확히 무슨 뜻인가

0xc000007b는 윈도우 커널이 쓰는 상태 코드 체계(NTSTATUS)에서 STATUS_INVALID_IMAGE_FORMAT에 해당합니다. 우리말로 옮기면 "이미지 형식이 올바르지 않습니다"이고, 여기서 말하는 이미지는 사진이 아니라 메모리에 올려야 할 실행 파일이나 DLL을 가리킵니다.

즉 프로그램 자체가 망가졌다는 뜻이 아니라, 프로그램이 실행되려고 불러온 파일 중 하나가 지금 이 프로세스에 올릴 수 없는 형태라는 뜻입니다. 윈도우 로더는 실행 파일을 띄울 때 그 파일이 요구하는 DLL을 차례대로 찾아 메모리에 붙이는데, 이 과정에서 다음 중 하나라도 걸리면 로딩을 중단하고 0xc000007b를 돌려줍니다.

  • 64비트 프로세스가 32비트 DLL을 만났거나, 그 반대인 경우
  • DLL 파일이 중간에 잘려 있거나 헤더가 깨져 있는 경우
  • 같은 이름의 DLL이 여러 위치에 있어 엉뚱한 쪽이 먼저 잡힌 경우

이 세 가지가 원인의 대부분을 차지합니다. 그래서 "무작정 재설치"보다 어떤 파일이 걸렸는지 좁히는 쪽이 훨씬 빠릅니다.


2증상으로 원인 좁히기 (판별표)

같은 오류 코드라도 언제 뜨는지에 따라 원인이 갈립니다. 아래 표에서 본인 상황에 가장 가까운 줄을 찾아, 해당 섹션으로 바로 이동하세요.

증상 유력한 원인 먼저 볼 항목
특정 한 프로그램에서만 뜨고 나머지는 정상그 프로그램 폴더에 잘못된 비트의 DLL이 동봉됨원인 A
여러 프로그램에서 동시에 뜨기 시작함공용 런타임(VC++) 손상원인 B
게임만 안 켜지고 일반 프로그램은 멀쩡함DirectX 하위 런타임 누락원인 C
윈도우 업데이트나 강제 종료 직후부터 발생시스템 파일 손상원인 D
복사해 온 DLL을 프로그램 폴더에 넣은 뒤부터 발생비트가 다른 DLL이 우선 로딩됨원인 A
재설치해도 같은 자리에서 똑같이 뜸프로그램이 아니라 시스템 쪽 구성 요소 문제원인 B·D

3원인 A. 32비트·64비트 실행 파일 불일치

0xc000007b가 가장 자주 나오는 상황입니다. 64비트 프로그램은 64비트 DLL만, 32비트 프로그램은 32비트 DLL만 불러올 수 있습니다. 한쪽이라도 섞이면 그 순간 로딩이 끊깁니다.

윈도우는 이 둘을 아예 다른 폴더에 나눠 둡니다. 64비트 시스템 DLL은 C:\Windows\System32, 32비트 시스템 DLL은 C:\Windows\SysWOW64에 있습니다. 이름이 반대처럼 보이지만 실제로 이렇습니다.

확인 순서

  1. 문제 프로그램의 exe 파일을 우클릭해 속성을 열고, 어떤 폴더에 설치돼 있는지 봅니다. C:\Program Files이면 64비트, C:\Program Files (x86)이면 32비트일 가능성이 큽니다.
  2. 인터넷에서 받아 프로그램 폴더에 직접 넣은 DLL이 있다면 전부 지웁니다. 이게 원인인 경우가 많습니다.
  3. 지운 뒤 프로그램을 다시 설치합니다. 정식 설치 파일은 자기 비트에 맞는 DLL을 알아서 넣습니다.
이 방법이 안 통하는 경우 프로그램 폴더에 손댄 적이 없는데도 오류가 난다면 원인 A가 아닙니다. 이 경우 DLL을 지우고 재설치해도 증상이 그대로이며, 공용 런타임 쪽(원인 B)을 봐야 합니다.
이 문제도 확인해보세요 이 앱은 사용자의 PC에서 실행할 수 없습니다 오류 해결법 - 32비트·64비트 호환성 문제 비트 불일치가 원인이면 이 오류 메시지로 바뀌어 나타나기도 합니다 · 눌러서 확인하기 →

4원인 B. Visual C++ 재배포 패키지 손상·누락

C++로 만든 프로그램은 대부분 마이크로소프트가 배포하는 공용 런타임을 씁니다. 이 런타임이 깨지면 그걸 쓰는 프로그램이 한꺼번에 안 켜집니다. 여러 프로그램에서 동시에 0xc000007b가 뜨기 시작했다면 여기부터 보는 게 맞습니다.

설치 상태 확인

  1. Win + I로 설정을 열고 좌측 "앱" → "설치된 앱"으로 들어갑니다.
  2. 검색창에 Visual C++를 입력합니다.
  3. 목록에 x86과 x64가 모두 있는지 확인합니다. 64비트 윈도우라도 32비트 프로그램을 위해 x86 쪽이 반드시 필요합니다.

한쪽이 없다면 마이크로소프트 공식 배포 페이지에서 x86과 x64를 둘 다 받아 설치합니다. 둘 다 있는데도 오류가 난다면 손상된 것이므로, 목록에서 해당 항목의 점 세 개(⋯)를 눌러 "수정" → "복구"를 실행합니다.

이 단계에서 막혔다면 VCRUNTIME140.dll이 없어서 프로그램을 시작할 수 없습니다? MSVCP140.dll까지 5분 만에 해결한 방법 런타임이 깨졌을 때 파일 이름을 짚어 알려주는 오류로도 나타납니다 · 눌러서 확인하기 →
이 방법이 안 통하는 경우 문제 프로그램이 아주 오래된 버전이라면 최신 2015~2022 패키지가 아니라 그 시절 버전(2010·2013 등)을 따로 요구합니다. 최신 것만 깔아서는 해결되지 않으므로, 프로그램 설치 폴더 안의 재배포 패키지 설치 파일을 찾아 그것으로 설치해야 합니다.

5원인 C. DirectX 런타임 구성 요소 누락

게임만 골라서 안 켜진다면 DirectX 쪽입니다. 윈도우 10·11에는 DirectX 12가 기본 포함돼 있지만, 옛 게임이 요구하는 d3dx9·d3dx11 계열 하위 런타임은 기본 포함되지 않습니다. 이 파일이 없으면 게임 실행 파일이 로딩 단계에서 멈추면서 0xc000007b가 뜹니다.

확인과 조치

  1. Win + R → dxdiag → Enter로 DirectX 진단 도구를 엽니다. "디스플레이" 탭에서 드라이버 버전과 DirectX 기능 상태를 확인합니다.
  2. 스팀 게임이라면 라이브러리에서 게임 우클릭 → "관리" → "로컬 파일 보기"로 들어가, _CommonRedist 또는 DirectX 폴더 안의 설치 파일을 직접 실행합니다. 이 안에 그 게임이 요구하는 정확한 버전이 들어 있습니다.
  3. 해당 폴더가 없다면 마이크로소프트가 배포하는 DirectX End-User Runtime을 설치하고 재부팅합니다.
이 방법이 안 통하는 경우 DirectX 12 시대 게임(출시 2016년 이후 대작 다수)은 하위 런타임을 쓰지 않습니다. 최신 게임에서 오류가 난다면 DirectX를 아무리 설치해도 변화가 없고, 그래픽 드라이버나 원인 B 쪽을 봐야 합니다.

6원인 D. 시스템 파일 손상

업데이트 중 강제 종료, 정전, 디스크 불량 섹터 등으로 윈도우 자체 파일이 깨지면 그 파일을 쓰는 모든 프로그램이 영향을 받습니다. 이 경우 윈도우가 제공하는 복구 도구로 되돌립니다.

시작 버튼을 우클릭해 "터미널(관리자)"을 열고, 아래를 이 순서 그대로 실행합니다. DISM이 정상 원본을 확보한 뒤에 sfc가 그 원본으로 교체하기 때문에 순서를 바꾸면 효과가 떨어집니다.

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

DISM은 10~20분, sfc는 5~15분 걸립니다. 진행률이 20%나 40%에서 오래 멈춰 있어도 정상이니 끄지 말고 기다립니다. 둘 다 끝나면 재부팅합니다.

이 방법이 안 통하는 경우 sfc가 "손상된 파일을 찾았지만 일부를 복구하지 못했습니다"를 낸다면 구성 요소 저장소 자체가 깨진 상태입니다. DISM을 한 번 더 돌려도 같은 메시지가 나오면 이 방향으로는 더 진행되지 않으며, 디스크 불량 여부를 chkdsk /f로 확인해야 합니다.

7문제를 정확히 찾아내는 법

위 네 갈래로도 좁혀지지 않으면, 추측 대신 윈도우가 남긴 기록을 봅니다. 어떤 파일에서 멈췄는지가 이벤트 로그에 남습니다.

  1. Win + R → eventvwr.msc → Enter
  2. 좌측 트리에서 "Windows 로그"를 펼치고 "응용 프로그램"을 클릭합니다.
  3. 가운데 목록에서 오류가 난 시각과 맞는 빨간 X 항목을 클릭합니다.
  4. 하단 "일반" 탭에서 오류 모듈 이름과 예외 코드 줄을 봅니다.

여기 적힌 오류 모듈 이름이 곧 문제를 일으킨 DLL입니다. 그 이름이 vcruntime이나 msvcp로 시작하면 원인 B, 게임 폴더 안의 파일이면 원인 A, d3dx로 시작하면 원인 C입니다. 파일 이름 하나만 확인해도 나머지 시도를 전부 건너뛸 수 있습니다.


8자주 묻는 질문

Q. DLL 파일만 인터넷에서 받아 넣으면 안 되나요?

권장하지 않습니다. 비트가 맞지 않거나 버전이 다른 파일을 넣으면 이 오류가 오히려 새로 생깁니다. 그리고 출처가 불분명한 DLL 배포 사이트는 변조된 파일을 배포하는 경우가 있습니다. 재배포 패키지나 게임 자체 설치 파일로 넣는 것이 맞습니다.

Q. 윈도우를 다시 깔면 확실히 해결되나요?

원인 B·D라면 해결됩니다. 하지만 원인 A처럼 프로그램 폴더에 잘못된 DLL이 들어 있는 경우라면, 새로 깐 윈도우에 같은 프로그램을 같은 방식으로 설치하는 순간 똑같이 재발합니다.

Q. 관리자 권한으로 실행하면 된다는 글이 많던데요?

0xc000007b는 권한 문제가 아니라 파일 형식 문제라 직접적인 관계는 없습니다. 다만 프로그램이 설치 폴더에 파일을 쓰려다 막혀 있던 경우라면 부수적으로 증상이 사라질 수 있어, 1분이면 되는 만큼 확인 삼아 해볼 가치는 있습니다.

Q. 백신을 꺼야 하나요?

백신이 게임 보호 모듈이나 런타임 DLL을 격리해 버린 경우에는 관계가 있습니다. Windows 보안의 "보호 기록"에 최근 격리된 항목이 있는지 먼저 보고, 문제 프로그램과 관련된 파일이 있다면 복원한 뒤 예외로 등록합니다. 무작정 백신을 끄는 것은 권하지 않습니다.


9확인 환경과 참고 문서

확인 환경 운영체제 : Windows 11 24H2 (Windows 10 22H2에서도 메뉴 이름만 다르고 동일하게 적용)
아키텍처 : x64
확인 연월 : 2026년 8월
메뉴 경로 : 윈도우 11 24H2 기준으로 표기했습니다. 윈도우 10은 설정 화면 구성이 달라 "앱 → 앱 및 기능"으로 들어갑니다.

참고 문서


함께 보면 좋은 글

0xc0000142 오류 해결 방법 5가지 같은 DLL 로딩 단계에서 나지만 원인이 다른 오류입니다 · 눌러서 확인하기 → d3dx9_43.dll이 없습니다 오류 해결 원인 C에 해당할 때 파일 이름을 짚어 나오는 형태입니다 · 눌러서 확인하기 →

광고자리 · 글 아래