이 글을 3줄로 요약하면
· VCRUNTIME140.dll·MSVCP140.dll은 마이크로소프트가 배포하는 공용 런타임 파일이고, 이 오류는 그 파일을 윈도우가 못 찾았다는 뜻입니다.
· 원인은 패키지 미설치, 패키지 손상, 윈도우 시스템 파일 손상, 특정 프로그램 쪽 문제 네 가지로 갈립니다.
· 아래 판별표에서 본인 증상을 먼저 찾고, 해당하는 원인 섹션 하나만 처리하면 됩니다.
목차
이 오류가 정확히 무슨 뜻인가
파일 하나가 빠졌다는 뜻이지, 프로그램이 망가졌다는 뜻이 아닙니다.
"VCRUNTIME140.dll이 없어서 프로그램을 시작할 수 없습니다. 이 문제를 해결하려면 프로그램을 다시 설치해 보세요." 이 문구는 윈도우 로더가 프로그램을 메모리에 올리는 도중, 그 프로그램이 요구한 DLL을 정해진 경로에서 찾지 못했을 때 내보내는 메시지입니다.
여기서 이름이 불린 두 파일은 프로그램 개발사가 만든 것이 아닙니다. 마이크로소프트가 배포하는 공용 런타임입니다. 마이크로소프트 문서 기준으로 각각의 역할은 이렇게 나뉩니다.
1VCRUNTIME140.dll — Visual C++ 런타임
예외 처리, 디버깅 지원, 런타임 검사, 형식 정보 같은 Visual C++ 구현 코드가 들어 있습니다. C나 C++로 만든 프로그램이 실행되는 순간 가장 먼저 필요한 부분입니다.
2MSVCP140.dll — C++ 표준 라이브러리
C++ 표준 템플릿 라이브러리(STL) 구현체입니다. 컨테이너나 문자열 처리 같은 표준 기능이 여기 들어 있습니다.
3VCRUNTIME140_1.dll — 보조 런타임
비교적 나중에 추가된 보조 파일입니다. 최신 버전 재배포 패키지에만 들어 있어, 오래전에 설치한 패키지를 쓰고 있으면 이 파일만 없다고 나오기도 합니다.
세 파일은 전부 같은 하나의 재배포 패키지에서 나옵니다. 그래서 어느 이름이 뜨든 손대야 할 곳은 같습니다. 메시지가 VCRUNTIME140.dll과 MSVCP140.dll 사이를 오가며 번갈아 떠도 서로 다른 문제가 아닙니다.
이 파일들은 윈도우에 기본 포함돼 있지 않습니다
C 표준 함수를 담당하는 UCRT는 윈도우 10 이상에서 운영체제 구성 요소로 들어가 있지만, VCRUNTIME140.dll과 MSVCP140.dll은 재배포 가능 패키지 쪽에 들어 있습니다. 윈도우를 새로 깔면 없는 것이 정상이고, 그 상태에서 C++ 프로그램을 실행하면 이 오류가 납니다.
이 파일이 실제로 시스템에 있는지는 탐색기로 직접 확인할 수 있습니다. 64비트용 파일은 C:\Windows\System32에, 32비트용 파일은 C:\Windows\SysWOW64에 들어갑니다. 폴더 이름이 반대처럼 보이지만 실제로 이렇게 갈립니다.
증상으로 원인 좁히기 (판별표)
같은 문구라도 언제부터 떴는지에 따라 볼 곳이 달라집니다.
아래 표에서 지금 상황과 가장 가까운 줄을 찾아, 그 줄이 가리키는 원인 섹션으로 바로 넘어가면 됩니다. 위에서부터 순서대로 다 해볼 필요가 없습니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 새 PC이거나 포맷 직후이고, 설치하는 프로그램마다 같은 창이 뜬다 | 재배포 패키지가 한 번도 설치된 적 없음 | 원인 A → 패키지 설치 |
| 잘 쓰던 PC인데, 프로그램을 여러 개 삭제한 뒤부터 뜨기 시작했다 | 설치돼 있던 패키지가 같이 지워지거나 손상됨 | 원인 B → 복구 실행 |
| 설치된 앱 목록에 x86·x64가 다 보이는데도 오류가 그대로다 | 패키지 파일 자체가 깨져 설치 기록만 남음 | 원인 B → 복구 실행 |
| 패키지를 새로 깔았는데도 설치가 중간에 실패하거나 오류가 반복된다 | 윈도우 시스템 파일·구성 요소 손상 | 원인 C → sfc·DISM |
| 다른 프로그램은 전부 멀쩡한데 특정 프로그램 하나만 이 창이 뜬다 | 그 프로그램의 설치 파일 손상 또는 구버전 | 원인 D → 재설치 |
| 어제까지 되던 프로그램이 백신 검사를 돌린 뒤부터 안 열린다 | 백신이 DLL을 오탐해 격리함 | 원인 D → 보호 기록 확인 |
DLL 파일 하나만 따로 내려받아 넣는 방법은 쓰지 않습니다
검색하면 "dll 다운로드" 사이트가 먼저 나오지만, 출처가 불분명한 DLL에는 악성코드가 섞여 있는 사례가 계속 보고됩니다. 게다가 파일 하나만 끼워 넣으면 같은 패키지의 나머지 파일과 버전이 어긋나, 이번엔 MSVCP140.dll이 없다는 식으로 오류가 옮겨 갑니다. 아래 어느 원인이든 조치는 마이크로소프트가 배포하는 패키지 단위로만 합니다.
원인 A재배포 패키지가 설치된 적이 없다
새 PC·포맷 직후에 프로그램마다 같은 창이 뜬다면 여기부터 봅니다.
윈도우를 새로 설치하면 Visual C++ 재배포 가능 패키지는 들어 있지 않습니다. 그동안은 게임이나 프로그램 설치 파일이 알아서 같이 깔아 주던 것이라, 없어진 줄 몰랐던 경우가 대부분입니다.
1지금 설치돼 있는지 먼저 확인한다
설정을 열고 좌측 "앱" → "설치된 앱"으로 들어가, 검색창에 Visual C++를 입력합니다. 목록에 "Microsoft Visual C++ 2015-2022 재배포 가능 패키지"가 x86과 x64로 각각 따로 보이는 것이 정상입니다.
2x64와 x86을 둘 다 설치한다
마이크로소프트 공식 배포 페이지에서 vc_redist.x64.exe와 vc_redist.x86.exe를 받아 각각 실행합니다. 64비트 윈도우를 쓰더라도 32비트로 만들어진 프로그램이 여전히 많기 때문에, 한쪽만 깔면 그 프로그램에서 같은 오류가 계속 납니다. 어느 쪽이 필요한지 판단이 서지 않으면 둘 다 설치해도 문제가 없습니다.
3설치가 끝나면 재부팅한다
설치 직후 재부팅 없이 바로 실행하면 오류가 그대로 뜨는 경우가 있습니다. 패키지를 깔았는데 변화가 없다고 판단하기 전에 재부팅부터 한 번 거칩니다.
설치가 제대로 됐는지는 파일로도 확인됩니다. x86 패키지를 설치했다면 SysWOW64 폴더에 32비트용 vcruntime140.dll이, x64 패키지를 설치했다면 System32 폴더에 64비트용이 들어갑니다. 한쪽 폴더에만 파일이 있다면 그쪽 패키지만 설치된 상태입니다.
이 방법이 안 통하는 경우
설치된 앱 목록에 x86·x64가 이미 둘 다 보이는 상태라면 원인 A가 아닙니다. 이때 패키지를 다시 내려받아 실행해도 "이미 설치됨"만 뜨고 증상은 그대로입니다. 원인 B로 넘어가 복구를 실행하세요.
원인 B패키지는 있는데 파일이 손상·삭제됐다
목록에는 보이는데 오류가 계속된다면 설치 기록만 남고 파일이 깨진 상태입니다.
쓰지 않는 프로그램을 한꺼번에 정리하다 보면, 그 프로그램이 자기 것으로 등록해 둔 런타임 구성 요소까지 같이 지워지는 일이 있습니다. 설치된 앱 목록에는 항목이 그대로 남아 있어서, 눈으로는 정상처럼 보이는 것이 이 원인의 특징입니다.
이 경우 패키지를 다시 내려받아 실행해도 설치 프로그램이 "이미 설치돼 있습니다"라고 판단해 그냥 끝나 버립니다. 그래서 삭제 후 재설치가 아니라 복구(Repair)를 써야 합니다.
1설치된 앱 목록에서 수정을 연다
설정 → 앱 → 설치된 앱에서 Visual C++를 검색하고, 해당 항목 우측의 점 세 개를 눌러 "수정"을 선택합니다. 그러면 복구와 제거를 고르는 창이 뜹니다.
2복구를 실행하고 x86·x64 양쪽 다 반복한다
복구를 누르면 깨지거나 사라진 파일만 원래 버전으로 다시 채워 넣습니다. 목록에 x86과 x64가 따로 있으므로 두 항목 모두 같은 절차를 밟습니다.
3재부팅한 뒤 System32와 SysWOW64를 확인한다
복구가 끝나면 재부팅하고, 탐색기 주소창에 C:\Windows\System32와 C:\Windows\SysWOW64를 차례로 넣어 vcruntime140.dll을 검색합니다. 양쪽에 파일이 들어와 있으면 복구가 정상적으로 반영된 것입니다.
복구가 목록에 없거나 눌러도 진행되지 않는다면, 공식 배포 페이지에서 vc_redist 설치 파일을 받아 그 파일로 실행하는 방법이 남아 있습니다. 설치 파일로 실행할 때는 복구·제거 선택 화면이 그대로 나옵니다.
이 방법이 안 통하는 경우
복구를 실행하는 도중 설치가 중간에 멈추거나 실패 메시지가 뜬다면, 패키지가 아니라 윈도우 쪽이 이미 손상돼 있는 상태입니다. 이때는 복구를 몇 번 반복해도 같은 지점에서 끊깁니다. 원인 C의 시스템 파일 검사로 넘어가세요.
원인 C윈도우 시스템 파일 자체가 손상됐다
패키지를 새로 깔아도 오류가 반복된다면 그 아래층부터 고쳐야 합니다.
재배포 패키지는 윈도우 위에 얹히는 구성 요소입니다. 그 아래 시스템 파일이 손상돼 있으면 패키지를 몇 번 설치해도 제자리를 잡지 못하고, 설치가 끝난 것처럼 보여도 같은 오류가 다시 납니다.
이 상태는 윈도우가 제공하는 두 도구로 점검합니다. 시작 버튼을 우클릭해 터미널을 관리자 권한으로 열고, 아래 명령을 순서대로 실행합니다.
1보호된 시스템 파일 검사
보호된 시스템 파일을 전부 검사해, 잘못된 버전을 올바른 마이크로소프트 버전으로 되돌립니다. 확인 100%가 뜰 때까지 창을 닫지 않습니다. 5분에서 15분 정도 걸립니다.
2윈도우 구성 요소 저장소 복구
sfc가 복구에 쓰는 원본 저장소 자체를 점검하고 고칩니다. sfc가 "복구하지 못했습니다"로 끝났다면 이 명령을 돌린 뒤 sfc를 한 번 더 실행합니다.
3재부팅 후 패키지를 한 번 더 설치
두 명령이 끝나면 PC를 재부팅하고, 원인 A의 재배포 패키지 설치를 다시 한 번 실행합니다. 시스템 파일이 복구된 상태에서 얹어야 패키지가 제자리를 잡습니다. 순서를 바꾸면 같은 작업을 두 번 하게 됩니다.
대기 중인 윈도우 업데이트가 있으면 먼저 적용합니다
설정 → Windows Update에 적용되지 않은 업데이트가 쌓여 있으면, 구성 요소가 반쯤 갱신된 상태에서 오류가 나기도 합니다. sfc·DISM을 돌리기 전에 업데이트를 모두 적용하고 재부팅해 두면 검사 결과가 더 깨끗하게 나옵니다.
이 방법이 안 통하는 경우
sfc가 "위반 사항을 찾지 못했습니다"로 깨끗하게 끝났다면 시스템 파일은 멀쩡하다는 뜻입니다. 이 상태에서 DISM까지 돌려도 달라지는 게 없다면 원인 C가 아닙니다. 문제 범위가 프로그램 하나로 좁혀지는지 원인 D에서 확인하세요.
원인 D특정 프로그램 하나에서만 나는 경우
다른 프로그램은 전부 정상인데 하나만 안 열린다면 시스템 문제가 아닙니다.
공용 런타임이 깨졌다면 그것을 쓰는 프로그램이 한꺼번에 안 열립니다. 반대로 하나만 안 열린다면 원인이 그 프로그램 쪽에 있다고 보는 편이 빠릅니다. 이 갈래는 다시 두 가지로 나뉩니다.
1프로그램을 완전히 지우고 최신 버전으로 다시 설치
설치 파일이 다운로드 도중 손상됐거나 버전이 오래된 경우입니다. 개발사 공식 홈페이지에서 최신 설치 파일을 새로 받아 설치합니다. 최신 버전은 대개 최신 재배포 패키지를 함께 요구하기 때문에, 프로그램만 갱신해도 오류가 사라지는 일이 많습니다.
2설치 파일은 관리자 권한으로 실행
설치 파일을 우클릭해 "관리자 권한으로 실행"을 고릅니다. 권한이 모자라면 시스템 폴더에 런타임을 넣는 단계에서 조용히 건너뛰고, 설치는 성공한 것처럼 끝납니다.
3백신 보호 기록에서 격리된 파일이 있는지 확인
일부 백신이 DLL을 오탐해 격리함에 넣는 경우가 있습니다. 파일이 격리되면 프로그램 입장에서는 파일이 사라진 것과 같아, 그 순간부터 이 오류가 뜹니다. 윈도우 보안의 보호 기록에서 최근 격리 목록을 확인하고, 문제 파일이 있으면 복원한 뒤 해당 폴더를 검사 제외로 등록합니다.
이 방법이 안 통하는 경우
재설치해도 같은 자리에서 똑같이 뜨고 백신 격리 기록도 없다면, 그 프로그램이 요구하는 런타임이 2015-2022 계열이 아닐 수 있습니다. 오래전에 만들어진 프로그램은 2010·2013 같은 그 시절 패키지를 따로 요구하며, 최신 패키지만 깔아서는 해결되지 않습니다. 설치 폴더 안에 동봉된 재배포 패키지 설치 파일이 있는지 찾아보세요.
원인을 정확히 찾아내는 법
추측으로 순서를 정하지 않고, 기록을 보고 원인을 지목하는 방법입니다.
오류 창은 파일 이름 하나만 알려 주고 사라집니다. 그런데 윈도우는 프로그램이 실행에 실패한 순간을 이벤트 로그에 남깁니다. 이 기록을 보면 어느 원인에 해당하는지 훨씬 빨리 판단할 수 있습니다.
1이벤트 뷰어에서 응용 프로그램 로그를 연다
Win + R을 눌러 eventvwr.msc를 실행하고, 좌측 트리에서 "Windows 로그" → "응용 프로그램"을 엽니다. 오류가 났던 시각의 빨간 표시 항목을 고릅니다.
2오류 모듈 이름 줄을 읽는다
하단 "일반" 탭에 "오류 모듈 이름"이나 "예외 코드"가 나옵니다. 여기 적힌 파일 이름이 vcruntime140.dll·msvcp140.dll 계열이면 런타임 문제가 맞고, 전혀 다른 파일 이름이 나온다면 이 글의 범위가 아니라 그 파일 쪽을 봐야 합니다.
3범위를 확인해 원인 A~D 중 하나로 좁힌다
C++로 만들어진 다른 프로그램을 두세 개 실행해 봅니다. 전부 같은 오류가 나면 원인 A·B, 문제 프로그램 하나만 나면 원인 D입니다. 여러 개가 나는데 패키지 설치·복구가 실패까지 한다면 원인 C입니다.
정리하면 판단 기준은 두 개입니다. 첫째, 오류가 여러 프로그램에서 나는가 하나에서만 나는가. 둘째, 패키지 설치·복구가 정상적으로 끝나는가 실패하는가. 이 두 가지만 확인해도 네 원인 중 하나로 좁혀집니다.
자주 묻는 질문
조치 순서를 정할 때 자주 걸리는 지점들입니다.
Q.DLL 파일만 따로 받아서 폴더에 넣어도 되나요?
A.권하지 않습니다. 비공식 사이트에서 받은 DLL은 악성코드가 섞여 있는 사례가 많고, 설령 정상 파일이어도 같은 패키지의 다른 파일과 버전이 어긋나면 이번엔 다른 이름의 DLL이 없다는 오류로 옮겨 갑니다. 패키지 단위로 설치하거나 복구하는 편이 안전하고 확실합니다.
Q.재배포 패키지를 여러 버전 설치해도 괜찮나요?
A.괜찮습니다. Visual C++ 2015부터 2022까지는 하나의 런타임으로 묶여 서로 호환되므로 최신 것 하나만 설치해도 되고, 2010·2013처럼 세대가 다른 패키지가 함께 깔려 있어도 각자 자리에서 공존합니다. 다만 같은 세대에서는 설치된 버전이 프로그램을 만든 빌드 도구 버전과 같거나 그보다 최신이어야 합니다.
Q.64비트 윈도우인데 x86도 설치해야 하나요?
A.네. 64비트 윈도우에서도 32비트로 만들어진 프로그램은 32비트 런타임을 찾습니다. x64만 설치하면 그 프로그램에서 같은 오류가 계속 나므로, 판단이 서지 않으면 x86과 x64를 둘 다 설치하는 편이 낫습니다.
Q.게임을 실행할 때만 이 오류가 뜨는데 원인이 다른가요?
A.게임도 같은 Visual C++ 런타임을 쓰는 경우가 많아 조치는 같습니다. 다만 게임은 DirectX 하위 런타임을 따로 요구하기도 하므로, 위 네 원인을 다 확인했는데도 게임에서만 계속 실패한다면 DirectX 쪽도 함께 점검해 보세요.
Q.패키지를 설치했는데도 오류가 그대로입니다.
A.재부팅을 했는지부터 확인하세요. 설치 직후 재부팅 없이 실행하면 반영이 안 된 상태라 그대로 뜨는 경우가 있습니다. 재부팅 후에도 같다면 설치가 아니라 복구가 필요한 상태이므로 원인 B로 가고, 복구까지 실패하면 원인 C로 넘어갑니다.
함께 보면 좋은 글
같은 런타임 계열에서 파일 이름만 바꿔 나타나는 오류들입니다.
api-ms-win-crt-runtime-l1-1-0.dll이 없습니다 오류 해결법 같은 C 런타임 계열이지만 UCRT 쪽이 빠졌을 때 뜨는 오류입니다 · 눌러서 확인하기 → mfc140u.dll이 없습니다 오류 해결법 같은 2015-2022 패키지에 들어 있는 MFC 라이브러리가 빠진 경우입니다 · 눌러서 확인하기 →참고 문서 · 지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드 — Microsoft Learn / C 런타임(CRT) 및 C++ 표준 라이브러리 .lib 파일 — Microsoft Learn / 시스템 파일 검사기 설명(Sfc.exe) — Microsoft Learn






