블루스크린

DLL·런타임 오류

드라이버 문제

게임 오류

윈도우 오류

프로그램 오류

광고자리 · 글 위

0xc0000142 오류 원인 4가지와 증상별 해결 순서 (윈도우 10·11)

이 글을 3줄로 요약하면

· 0xc0000142는 프로그램이 실행되면서 불러온 DLL의 초기화가 실패했을 때 윈도우가 돌려주는 상태 코드입니다.

· 원인은 런타임 구성 요소 손상, 실행 경로·권한 문제, 보안 프로그램 차단, 시스템 파일 손상 네 갈래로 갈립니다.

· 방법을 위에서부터 전부 시도하는 대신, 판별표에서 증상에 맞는 원인 한 곳으로 바로 가도록 정리했습니다.

0xc0000142는 정확히 무슨 뜻인가

이 코드가 가리키는 실패 지점을 알면 어느 원인부터 볼지가 정해집니다.

화면에 뜨는 문구는 보통 "응용 프로그램을 제대로 시작하지 못했습니다 (0xc0000142). 응용 프로그램을 닫으려면 [확인]을 클릭하십시오."입니다. 아이콘을 더블클릭하는 순간, 프로그램 화면이 뜨기도 전에 이 팝업부터 올라오는 것이 특징입니다.

0xc0000142는 윈도우 커널이 쓰는 상태 코드 체계(NTSTATUS)에서 STATUS_DLL_INIT_FAILED에 해당합니다. 원문 설명은 "동적 연결 라이브러리의 초기화가 실패했으며 프로세스가 비정상적으로 종료된다"는 내용입니다.

여기서 중요한 것은 실패한 지점이 어디냐입니다. 윈도우가 실행 파일을 못 찾은 것도 아니고, 파일이 깨져서 프로세스를 못 만든 것도 아닙니다. 프로세스는 이미 만들어졌고, 그 프로세스가 필요한 DLL을 하나씩 메모리에 붙이며 초기화 코드를 실행하는 단계에서 멈춘 것입니다.

파일을 찾았고 형식도 맞는데, 그 파일이 자기 준비 작업을 하다가 실패했다는 뜻입니다. 그래서 "프로그램 파일이 고장 났나 보다" 하고 재설치부터 하면 같은 오류가 그대로 다시 뜨는 경우가 많습니다. 프로그램 폴더는 새로 깔려도, 초기화에 실패한 공용 구성 요소는 그대로 남아 있기 때문입니다.

비슷하게 생긴 0xc000007b와도 다릅니다. 0xc000007b는 파일의 형식 자체가 맞지 않는 경우(32비트와 64비트가 섞인 경우)이고, 0xc0000142는 형식은 맞는데 그 안의 초기화 절차가 실패한 경우입니다. 코드가 다르면 봐야 할 곳도 다릅니다.

마이크로소프트 개발자 문서는 이 코드가 나오는 상황으로 한 번에 많은 프로그램을 띄웠을 때, 다른 사용자 계정으로 실행했을 때, 다른 데스크톱 세션에 실행했을 때를 함께 듭니다. 셋 다 초기화에 필요한 자원이나 권한이 모자란 상태라는 공통점이 있습니다. 아래 원인 분기도 이 관점으로 나눴습니다.

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

같은 코드라도 언제·어디서 뜨는지에 따라 봐야 할 원인이 달라집니다.

아래 표에서 지금 상황과 가장 가까운 줄을 찾은 다음, 그 줄이 가리키는 원인 섹션으로 바로 이동하세요. 해당하는 줄이 두 개 이상이면 위쪽 줄부터 봅니다.

증상 유력한 원인 먼저 볼 항목
특정 프로그램 하나만 안 켜지고 나머지는 멀쩡함 그 프로그램이 요구하는 런타임 버전이 없거나 손상 원인 A
어느 날부터 여러 프로그램이 한꺼번에 같은 오류를 냄 공용 런타임 손상 또는 시스템 파일 손상 원인 A → 원인 D
무설치(포터블) 프로그램을 한글이 섞인 폴더에서 실행함 경로나 계정 이름의 비영문 문자 원인 B
관리자 권한으로 실행하면 켜지고 그냥 켜면 오류가 뜸 초기화 단계에서 권한·호환성 설정이 모자람 원인 B
실행 직후 백신 알림이 뜨거나 파일이 슬그머니 사라짐 보안 프로그램이 실행 파일이나 DLL을 격리 원인 C
윈도우 업데이트나 강제 종료 직후부터 발생하기 시작함 시스템 파일·구성 요소 저장소 손상 원인 D

원인 A런타임 구성 요소 손상·누락

0xc0000142에서 가장 흔한 갈래입니다. 프로그램이 빌려 쓰는 공용 라이브러리가 없거나 깨진 경우입니다.

윈도우 프로그램 대부분은 실행에 필요한 코드를 전부 자기 안에 넣고 다니지 않습니다. Visual C++ 재배포 가능 패키지나 .NET Framework처럼 시스템에 한 벌만 깔아두고 여러 프로그램이 나눠 쓰는 구성 요소를 불러 씁니다.

이 공용 구성 요소가 없거나, 있어도 파일이 손상됐거나, 프로그램이 요구하는 버전과 다르면 초기화 단계에서 그대로 멈춥니다. 이때 나오는 코드가 0xc0000142입니다.

주의할 점은 Visual C++ 재배포 패키지가 버전별로 별개라는 것입니다. 2010용, 2013용, 2015~2022용이 각각 다른 파일이고, 하나가 깔려 있다고 다른 버전이 대체되지 않습니다.

1지금 깔려 있는 목록부터 확인한다

설정에서 앱 → 설치된 앱으로 들어가 검색창에 Visual C++를 입력합니다. x86 항목과 x64 항목이 한 화면에 함께 보이도록 창을 늘려 두면 어느 버전이 빠졌는지 한눈에 들어옵니다.

2있는 항목은 먼저 복구를 돌린다

목록에 있는데도 오류가 난다면 파일이 손상됐을 수 있습니다. 항목 오른쪽 점 세 개를 눌러 수정을 선택하면 복구와 제거를 고르는 창이 뜹니다. 복구를 먼저 시도하는 편이 지우고 다시 까는 것보다 빠릅니다.

3복구로 안 되면 제거 후 재설치한다

마이크로소프트 공식 배포 페이지에서 Visual C++ 재배포 가능 패키지를 새로 내려받아 설치합니다. 이미 설치되어 있다는 메시지가 뜨면 먼저 삭제한 뒤 다시 설치하는 쪽이 확실합니다. x86과 x64를 둘 다 설치합니다.

4.NET Framework도 같이 본다

프로그램이 .NET 기반이면 .NET Framework 쪽이 원인일 수 있습니다. 오래된 프로그램은 .NET Framework 4.5를 요구하는 경우가 있어, 해당 버전을 새로 설치하거나 복구합니다.

64비트 윈도우라도 x86 패키지가 함께 필요합니다

64비트 윈도우라고 x64 패키지만 있으면 되는 것이 아닙니다. 32비트로 만들어진 프로그램은 x86 패키지를 찾습니다. 목록에 x86 항목이 하나도 없다면 그것만으로도 이 오류가 납니다.

같이 나오는 오류입니다 0xc0000135 오류 해결법 – 응용 프로그램을 시작하지 못했습니다 .NET Framework가 아예 없을 때 뜨는 코드입니다. 원인 A를 짚다가 .NET 쪽이 의심되면 여기부터 · 눌러서 확인하기 →

이 방법이 안 통하는 경우

재배포 패키지를 x86·x64 모두 새로 설치하고 재부팅했는데도 같은 자리에서 똑같이 뜬다면, 런타임 파일 자체가 아니라 그 파일을 보관하는 시스템 쪽이 깨졌을 수 있습니다. 원인 D로 넘어가 시스템 파일 검사를 먼저 돌리세요.

원인 B실행 경로·권한·호환성 설정 불일치

프로그램은 멀쩡한데 그 프로그램이 놓인 자리나 실행 조건이 맞지 않는 경우입니다.

초기화 단계에서 프로그램은 자기 폴더의 설정 파일과 리소스를 열어 봅니다. 이때 경로에 한글이 섞여 있으면 문자 처리 방식이 예전 방식으로 고정된 프로그램은 그 경로를 제대로 읽지 못합니다. 파일을 못 여니 초기화가 실패하고, 결과는 0xc0000142로 나옵니다.

무설치(포터블) 프로그램에서 특히 자주 걸립니다. 압축을 푼 폴더가 바탕화면이나 다운로드 폴더 아래 한글 이름 폴더에 들어 있는 경우가 많기 때문입니다.

1폴더 경로에 한글이 있는지부터 본다

파일 탐색기 주소창의 경로를 처음부터 끝까지 읽어 봅니다. 한 글자라도 한글이 있으면 C:\Program 같은 영문 경로로 폴더째 옮긴 뒤 다시 실행합니다.

2윈도우 계정 이름도 확인한다

프로그램을 영문 경로로 옮겨도 같은 오류가 난다면 사용자 프로필 폴더를 봅니다. C:\Users 아래 자기 계정 폴더 이름이 한글이면, 임시 파일이 그 폴더에 만들어지는 프로그램은 같은 문제를 겪습니다.

3호환 모드와 관리자 권한을 함께 켠다

실행 파일을 우클릭해 속성으로 들어가 호환성 탭을 엽니다. "이 프로그램을 호환 모드로 실행"을 체크하고 Windows 7 또는 Windows 8로 지정한 다음, 그 아래 "관리자 권한으로 이 프로그램 실행"도 함께 체크하고 다시 실행합니다.

두 항목을 함께 켜는 데는 이유가 있습니다. 호환 모드는 예전 윈도우처럼 동작하도록 보정해 주고, 관리자 권한은 초기화 중에 필요한 폴더와 레지스트리에 접근할 수 있게 해 줍니다. 앞서 본 것처럼 권한이 다른 상태로 실행될 때도 이 코드가 나오기 때문에, 권한 쪽을 같이 맞춰 주는 것이 판별에 도움이 됩니다.

계정 폴더 이름을 직접 바꾸지 마세요

계정 폴더가 한글이라고 해서 탐색기에서 폴더 이름만 영문으로 고치면 프로필 경로가 어긋나 로그인 자체가 깨질 수 있습니다. 영문 이름의 로컬 계정을 새로 만들어 그 계정에서 프로그램을 실행해 보는 쪽이 안전합니다. 이 방법은 원인 확인에도 그대로 쓸 수 있습니다.

이 방법이 안 통하는 경우

경로에 한글이 전혀 없고, 관리자 권한과 호환 모드를 모두 켜도 결과가 같다면 실행 환경 문제가 아닙니다. 실행하는 순간 무언가가 파일을 막고 있는 것일 수 있으니 원인 C로 넘어가세요.

원인 C백신·보안 프로그램의 차단

파일은 그 자리에 있는데 보안 프로그램이 읽지 못하게 잡고 있는 경우입니다.

백신은 실행 파일이 메모리에 올라가는 순간을 검사합니다. 이때 프로그램이 함께 불러오는 DLL 하나를 위험하다고 판단해 격리하면, 그 DLL의 초기화는 당연히 실패합니다. 파일이 삭제된 것이 아니라 격리 폴더로 옮겨졌기 때문에 탐색기로 봐도 눈치채기 어렵습니다.

압축을 풀어 쓰는 프로그램, 자체 실행 압축 형태의 설치 파일, 게임 보호 모듈처럼 시스템 깊숙이 접근하는 구성 요소에서 오탐이 자주 납니다.

1보호 기록에서 격리된 항목을 찾는다

Windows 보안의 바이러스 및 위협 방지 화면에서 보호 기록을 엽니다. 최근 목록에 문제 프로그램의 파일 이름이나 그 폴더 경로가 있으면 이 갈래가 맞습니다. 다른 백신을 쓰고 있다면 그 백신의 격리 보관함을 봅니다.

2실시간 검사를 잠깐 끄고 실행해 본다

사용 중인 백신을 잠시 중지한 상태에서 프로그램을 실행해 봅니다. 이때 정상적으로 열리면 차단이 원인이라는 뜻이고, 그대로 오류가 나면 백신은 범인이 아닙니다. 여기서 갈래가 확실히 나뉩니다.

3백신을 다시 켜고 제외 목록에 등록한다

차단이 확인됐다면 백신을 끈 채로 두지 말고, 해당 프로그램의 설치 폴더를 제외(예외) 목록에 추가합니다. 파일 하나가 아니라 폴더 단위로 등록해야 프로그램이 나중에 만드는 파일까지 함께 빠집니다.

백신을 끈 상태로 계속 쓰지 않습니다

실시간 검사를 끄는 것은 원인을 가리기 위한 일시적인 확인 절차입니다. 확인이 끝나면 반드시 다시 켜고, 필요한 폴더만 제외로 지정하세요. 출처가 불분명한 파일이라면 제외로 등록하기 전에 파일 자체를 다시 한번 의심해 보는 편이 낫습니다.

이 단계에서 막혔다면 0xc0000906 오류 해결 – 프로그램이 백신에 차단되어 실행 안 될 때 차단이 원인일 때 전용으로 뜨는 코드입니다. 제외 등록 절차를 더 자세히 다뤘습니다 · 눌러서 확인하기 →

이 방법이 안 통하는 경우

백신을 완전히 중지한 상태에서도 오류가 똑같이 뜬다면 차단 문제가 아닙니다. 보호 기록에도 관련 항목이 없다면 이 갈래는 접고 원인 A나 원인 D로 돌아가세요.

원인 D시스템 파일·구성 요소 저장소 손상

여러 프로그램이 한꺼번에 안 켜지거나, 런타임을 새로 깔아도 그대로일 때 보는 갈래입니다.

윈도우는 시스템 DLL의 원본을 구성 요소 저장소에 따로 보관합니다. 이 저장소나 실제 시스템 파일이 손상되면, 재배포 패키지를 아무리 새로 설치해도 손상된 파일이 다시 채워집니다. 원인 A를 두 번 세 번 반복해도 같은 결과가 나오는 이유입니다.

업데이트가 중간에 끊겼거나, 정전이나 강제 종료로 시스템이 갑자기 꺼진 적이 있다면 이 갈래일 가능성이 높습니다.

1윈도우를 최신 상태로 만든다

설정에서 Windows 업데이트를 열어 남은 업데이트를 모두 설치합니다. 밀려 있던 누적 업데이트가 손상된 구성 요소를 교체해 주는 경우가 있어, 검사 명령보다 먼저 해 두는 편이 낫습니다.

2시스템 파일 검사를 돌린다

sfc /scannow

시작 버튼을 우클릭해 터미널(관리자)을 연 뒤 위 명령을 입력합니다. 검사가 100%에 닿을 때까지 창을 닫지 않습니다. 손상된 파일을 찾아 복구했다는 문구가 나오면 이 갈래가 맞았다는 뜻입니다.

3복구가 안 되면 저장소부터 고친다

dism /online /cleanup-image /restorehealth

sfc가 "복구할 수 없다"는 결과를 내놓았다면 원본 저장소 자체가 깨진 것입니다. 같은 창에서 위 명령을 실행해 저장소를 먼저 복구한 다음, sfc를 한 번 더 돌립니다.

4재부팅한 뒤 다시 실행해 본다

검사가 끝나면 반드시 재부팅합니다. 교체된 시스템 파일은 다시 부팅해야 실제로 쓰입니다. 재부팅 후에도 같으면 원인 A로 돌아가 재배포 패키지를 한 번 더 설치합니다.

결과 문구를 읽는 기준은 단순합니다. "위반 사항을 발견하지 못했습니다"면 시스템 파일은 정상이고, "복구했습니다"면 손상이 실제로 있었으며, "복구할 수 없습니다"면 저장소 쪽이 문제라는 뜻입니다. 세 문구가 각각 다음 행동을 정해 줍니다.

이 방법이 안 통하는 경우

sfc가 위반 사항을 찾지 못했다면 시스템 파일은 멀쩡한 것이므로 여기에 더 시간을 쓰지 않습니다. 그래픽 드라이버를 제조사 홈페이지에서 최신 버전으로 다시 설치하고, 프로그램을 잔여 파일까지 완전히 지운 뒤 최신 버전으로 재설치합니다. 그래도 반복되면 제작사 홈페이지에서 그 프로그램의 최신 패치가 나와 있는지 확인하세요.

원인을 정확히 찾아내는 법

네 갈래 중 어디인지 감이 안 잡힐 때, 추측 대신 확인으로 좁히는 방법입니다.

0xc0000142 팝업에는 어떤 DLL이 실패했는지가 적혀 있지 않습니다. 그래서 창만 보고는 갈래를 고르기 어렵습니다. 다행히 윈도우는 그 정보를 다른 곳에 남겨 둡니다.

1이벤트 뷰어에서 실패한 모듈 이름을 확인한다

이벤트 뷰어의 Windows 로그 → 응용 프로그램에서 오류로 표시된 항목을 엽니다. 아래 미리보기의 일반 탭에 "오류 모듈 이름"이나 "예외 코드"가 나옵니다. 여기 적힌 파일 이름이 곧 다음에 볼 곳입니다.

모듈 이름이 msvcp·vcruntime으로 시작하면 Visual C++ 계열이므로 원인 A입니다. clr이나 mscor로 시작하면 .NET 쪽이고 역시 원인 A입니다. 프로그램 폴더 안의 파일 이름이 찍혀 있다면 그 파일이 격리됐는지부터 봐야 하니 원인 C를 먼저 봅니다.

2영문 이름의 새 계정에서 같은 프로그램을 실행한다

영문 이름으로 로컬 계정을 하나 만들어 로그인한 뒤 같은 프로그램을 실행합니다. 여기서 정상적으로 열리면 프로필 경로나 계정별 설정 문제이므로 원인 B입니다. 새 계정에서도 같은 오류가 나면 시스템 전체의 문제이니 원인 A와 D로 좁혀집니다.

3보안 프로그램만 배제한 상태를 만들어 비교한다

백신 실시간 검사만 잠깐 끈 상태와 켠 상태의 결과를 비교합니다. 두 상태의 결과가 다르면 원인 C가 확정됩니다. 결과가 같다면 백신은 후보에서 지웁니다. 조건을 하나씩만 바꿔야 무엇이 영향을 줬는지 알 수 있습니다.

4다른 프로그램도 같은 오류가 나는지 본다

문제 프로그램 말고 다른 프로그램 두세 개를 열어 봅니다. 한 개만 안 열리면 그 프로그램이 요구하는 특정 런타임 문제(원인 A)이고, 여러 개가 함께 안 열리면 시스템 공통 구성 요소 문제(원인 A 또는 D)입니다. 이 한 가지만 확인해도 절반은 걸러집니다.

조건은 한 번에 하나씩만 바꿉니다

백신을 끄고 호환 모드를 켜고 재배포 패키지도 새로 깐 다음 실행해서 열렸다면, 무엇이 해결했는지 알 수 없습니다. 다음에 같은 증상이 나면 처음부터 다시 하게 됩니다. 한 번에 하나씩 바꾸고 그때마다 실행해 보는 편이 결국 더 빠릅니다.

자주 묻는 질문

이 오류를 다룰 때 특히 자주 엇갈리는 지점만 모았습니다.

Q.프로그램을 지웠다 다시 깔았는데도 똑같이 뜹니다.

A.재설치는 프로그램 폴더만 새로 씁니다. 초기화에 실패한 대상이 시스템에 공유돼 있는 런타임이라면 재설치로는 그대로입니다. 원인 A의 재배포 패키지 점검과 원인 D의 시스템 파일 검사를 먼저 하는 편이 순서상 맞습니다.

Q.게임에서 뜨는 0xc0000142도 같은 방법으로 되나요?

A.초기화 실패라는 구조는 같아서 원인 분기도 그대로 적용됩니다. 다만 게임은 설치 폴더 안에 런타임 설치 파일이 함께 들어 있는 경우가 많아 원인 A의 비중이 큽니다. 그래픽 드라이버를 제조사 홈페이지의 최신 버전으로 다시 설치하는 것도 함께 확인해 보세요.

Q.갈래가 안 잡힐 때는 어떤 순서로 봐야 하나요?

A.먼저 판별표에서 자기 증상을 찾아보고, 그래도 애매하면 원인 A → 원인 D → 원인 C → 원인 B 순서로 봅니다. 런타임 손상이 가장 흔하고, 확인에 걸리는 시간도 짧기 때문입니다. 다만 무설치 프로그램을 한글 폴더에서 쓰고 있다면 원인 B를 맨 앞으로 당기세요.

Q.0xc000007b가 뜨는데 이 글을 봐도 되나요?

A.두 코드는 실패 지점이 다릅니다. 0xc000007b는 파일 형식이 맞지 않는 경우이고, 0xc0000142는 형식은 맞는데 초기화가 실패한 경우입니다. 겹치는 조치도 있지만 판별 순서가 달라 별도 글을 보는 편이 빠릅니다.

Q.인터넷에서 받은 DLL을 폴더에 넣으면 해결되나요?

A.권하지 않습니다. 출처가 불분명한 파일은 위험할 뿐 아니라, 버전이 어긋난 DLL이 먼저 잡히면서 오류가 다른 코드로 바뀌기만 하는 경우가 많습니다. 필요한 파일은 마이크로소프트 공식 재배포 패키지를 통해 받는 것이 정석입니다.

함께 보면 좋은 글

같은 실행 실패 계열이지만 판별 지점이 다른 코드들입니다.

0xc000007b 오류 원인 4가지와 증상별 해결 순서 (윈도우 10·11 공통) 같은 실행 실패지만 형식 불일치 쪽입니다 · 눌러서 확인하기 → 0xc0000005 오류 원인 4가지와 증상별 해결 순서 (액세스 위반, 윈도우 10·11) 프로그램이 실행된 뒤 튕길 때 뜨는 코드입니다 · 눌러서 확인하기 →
확인 환경 · 윈도우 11 24H2 / 윈도우 10 22H2 기준, 2026년 8월 확인. 메뉴 경로는 윈도우 11 24H2 화면으로 적었습니다. 윈도우 10은 설정 구성이 달라 "앱 → 앱 및 기능"으로 들어갑니다.
참고 문서 · [MS-ERREF] NTSTATUS Values — Microsoft Learn (0xC0000142 = STATUS_DLL_INIT_FAILED)
참고 문서 · What is up with "The application failed to initialize properly (0xc0000142)" error? — Microsoft Learn 아카이브
참고 문서 · 지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드 — Microsoft Learn
참고 문서 · Use the System File Checker tool to repair missing or corrupted system files — Microsoft 지원

광고자리 · 글 아래