티스토리 뷰
PC 상에서 게임이나 프로그램 등을 설치해서 사용할 때 종종 무슨 DLL이 없다면서 실행이 안 되거나 에러가 나는 경우가 있습니다. 이는 그런 게임이나 프로그램이 Visual C/C++로 개발할 때 C 런타임 라이브러리를 이용하는데 그 라이브러리는 이전 Visual Studio 6.0 컴파일러에는 포함이 되었지만, 그 이후에 나온 Visual Studio(이하 VS로 표기) 2005, VS 2008, VS 2010, VS 2012, VS 2013, VS 2015, VS 2017에서 개발한 경우 C 런타임 라이브러리를 같이 배포해야 합니다. 이유는 윈도우에 기본 포함되지 않기 때문입니다. 또한, MFC로 개발될 경우 Static Library로 컴파일하면 문제 되지 않지만, Shared DLL로 컴파일하면 관련 MFC DLL을 같이 배포해줘야 합니다. 이런 문제를 해결하기 위해 마이크로소프트는 관련 컴포넌트를 묶어 재배포 가능 패키지(Microsoft Visual C++ Redistributable Package)라는 이름으로 배포하고 있습니다. 이 재배포 패키지는 개발된 VS 버전과 동일한 버전의 재배포 패키지를 설치하면 문제가 해결됩니다. 이 재배포 패키지는 C 런타임 라이브러리(CRT)와 Standard C++, MFC, C++ AMP, OpenMP등의 Visual C++ 관련 라이브러리 컴포넌트의 모음입니다.
종종 겪게되는 오류
일반적으로 사용자는 게임이나 프로그램이 어떤 버전으로 개발되었고 어떤 컴포넌트가 필요한지, 또 어떤 플랫폼인지를 알기 어렵기 때문에 게임 운영 홈페이지나 프로그램 개발 홈페이지 등에서 안내되는 내용대로 설치해야 합니다. "예를 들면 Visual Studio 2010 Runtime 64비트(vcredist_x64.exe) 설치 필요" 라든가 "Visual Studio 2013용 재배포 가능 패키지 설치 필요"와 비슷한 안내가 있을 겁니다. 그런 안내조차 없이 설치 또는 실행했을 때 msvcr숫자.dll이나 msvcp숫자.dll등등이 없다고 나올 수 있는데 그런 경우에 해당되는 재배포 패키지를 설치하면 해결됩니다.
Visual Studio 버전별 DLL 라이브러리
DLL |
라이브러리 |
msvcr버전숫자.dll |
C 런타임 라이브러리(CRT) |
msvcp버전숫자.dll |
Standard C++ 라이브러리 |
mfc버전숫자.dll |
MFC 라이브러리 |
mfc버전숫자u.dll |
유니코드지원 MFC 라이브러리 |
mfcmifc버전숫자dll |
윈도우즈 폼 컨트롤(Windows Forms Controls)용 MFC 인터페이스 라이브러리 |
mfcm버전숫자.dll |
윈도우즈 폼 컨트롤(Windows Forms Controls)용 MFC 라이브러리 |
mfcm버전숫자u.dll |
유니코드지원 윈도우즈 폼 컨트롤용 MFC 라이브러리 |
* 이외에도 버전에 따라 몇가지 더 추가되거나 생략됩니다.
|
|
VS 2005 |
atl80.dll, msvcr80.dll, msvcp80.dll, msvcm80.dll, mfc80.dll, mfc80u.dll, mfcm80.dll, mfcm80u.dll |
VS 2008 |
atl90.dll, msvcr90.dll, msvcm90.dll, msvcp90.dll, mfc90.dll, mfc90u.dll, mfcmifc90.dll, mfcm90.dll, mfcm90u.dll |
VS 2010 |
atl100.dll, msvcr100.dll, msvcp100.dll, mfc100.dll, mfc100u.dll, mfcmifc80.dll, mfcm100.dll, mfcm100u.dll |
VS 2012 |
atl110.dll, msvcr110.dll, msvcp110.dll, mfc110.dll, mfc110u.dll, mfcmifc80.dll, mfcm110.dll, mfcm110u.dll |
VS 2013 |
msvcr120.dll, msvcp120.dll, mfc120.dll, mfc120u.dll, mfcmifc80.dll, mfcm120.dll, mfcm120u.dll |
VS 2015* |
vcruntime140.dll, msvcp140.dll, ucrtbase.dll, mfc140.dll, mfc140u.dll, mfcm140.dll, mfcm140u.dll |
VS 2017 |
VS 2015와 동일** |
* VS 2015 부터는 msvcr*.dll은 사용되지 않고 vcruntime*.dll로 변경되었습니다.
**몇몇 DLL의 이름이 동일하다는뜻이지 구성과 버전이 동일하다는 뜻은 아닙니다.
다운로드
위의 표에서 에러가 나는 DLL 이름에 해당하는 VS 버전을 찾아서 아래에서 해당되는 버전을 다운로드 하여 설치합니다. 보통 설치파일 이름은 vcredist_x86.exe, vcredist_x64.exe입니다.
32비트(bit)인지 64비트(bit)인지는 자신의 윈도우 플랫폼에 따라가기보다는 개발된 프로그램이 어느 플랫폼으로 개발됐는지에 따라 달라지는데 보통 자신의 윈도우가 32비트면 32비트 재배포 패키지만 설치하면 됩니다. (32비트 윈도우에서는 32비트로 개발된 프로그램만 실행되기 때문) 만약 32비트인지 64비트인지 모를 경우에는 다음과 같이 합니다.
자신의 윈도우가 32비트일 경우 : 32비트(x86) 재배포 패키지를 다운로드 하여 설치.
자신의 윈도우가 64비트일 경우 : 32비트(x86)와 64비트(x64) 2개 모두 다운로드 하여 설치.
시스템 종류
자신의 윈도우가 32비트인지 64비트인지 알아보려면 윈도우7 이하에서는 제어판-시스템, 윈도우10에서는 설정-시스템-정보 에서 확인할 수 있습니다.
다운로드 종류
다운로드를 누르면 위와 같은 화면이 나옵니다. 원하는 플랫폼을 선택 후 다음을 누르면 다운로드 됩니다. 참고로 vcredist_arm.exe는 ARM 플랫폼에 해당하는 파일로 윈도우에서는 사용하지 않으니 다운로드하지 않고 설치도 하지 않습니다.
위의 2012와 같은 방법으로 다운로드 합니다.
위의 2012와 같은 방법으로 다운로드 합니다.
VS 2017 재배포 패키지 다운로드 방법
접속 후 맨 아래로 스크롤 하면 위와 같은 화면이 나옵니다. x86, x64 선택 후 다운로드 하시면 됩니다.
'윈도우 (Windows) > 정보&팁' 카테고리의 다른 글
윈도우10에서 0x8007042b 오류 해결방법 (0) | 2017.10.16 |
---|---|
에오스(EOS) 온라인게임 설치 경로 변경 레지스트리 (0) | 2017.10.12 |
블레스(Bless) 온라인 게임 설치경로 변경 레지스트리 (0) | 2017.09.19 |
뮤레전드(MuLegend) 설치 폴더 경로 레지스트리 (0) | 2017.09.05 |
테라 설치경로 변경 레지스트리 (0) | 2017.09.02 |