[Visual C++] dll 에러 해결 방법 – mfc140u, VCRUNTIME140.dll 등등

개발자가 아니더라도, 일반 사용자들이 컴퓨터를 사용하다 보면 mfc140u.dll 등의 dll이 없다고 에러가 나타납니다.

이럴 때 참 난감합니다. 어찌어찌 인터넷 상에서 mfc140.dll, VCRUNTIME140.dll을 다운받아도 또 다른 dll이 없다고 하거나 정상적으로 실행 되지 않죠.

이 오류들은 대체 무엇일까요? 그리고 어떻게 하면 해결할 수 있을까요?

우선 해결 방법부터 알려드리자면 여기에서 Visual C++ 재배포 가능 패키지를 설치하면 해결 될 수 있습니다.(프로그램이 개발된 환경 버전을 정확히 설치해야합니다.)

저 에러가 나타나는 이유는 뭘까요? 사실 프로그램은 여러 가지 모듈들을 사용하여 만듭니다.
예를 들어 건물을 만드는 경우, 시공업체는 건물을 만들기 위해 벽돌, 유리창, 현관문 등등 많은 재료들을 사용합니다.
하지만 시공업체가 벽돌, 유리창, 현관문을 일일히 다 만들까요? 그건 아닙니다.
그걸 다 하게되면 시간도 오래걸리고, 일도 효율적이지 않습니다.
그렇기 때문에 벽돌, 유리창, 현관문은 제조하는 업체가 만들고 시공업체는 만들어진 것들을 가져다 씁니다.

개발자 입장도 마찬가지입니다. 개발자는 프로그램의 모든 부분을 만들진 않습니다.
프로그램에 버튼을 만들 때, 버튼 하나하나 신경 쓰지 않고 제공하는 버튼을 가져다 씁니다.
‘마우스로 눌렸을 때 모양’, ‘마우스로 눌리지 않았을 때 모양’ 등 모든 경우를 신경 쓰면 개발하기 너무 어렵겠죠.

MicroSoft(= 제조업체)에서 제공하는 각종 dll(= 벽돌, 유리창, 현관문)을 가져다 쓰기 때문에 그렇습니다.

다시 처음으로 돌아와서, 위와 같이 .dll이 없다는 것은 결국 무슨 의미로 봐야할까요?
프로그램을 실행하기 위한 기본 모듈이 없다라고 보시면 됩니다.


이제 개발자 입장에서 위 문제를 해결하는 방법을 알아봅시다.
개발자는 당연히 개발 환경을 구축하기 때문에 자신이 사용하는 PC에는 dll이 없을 수 없습니다.
Visual C++을 설치하다 보면 자동으로 설치 되기 때문이죠. 
하지만 일반 사용자들이 Visual C++을 설치 할 일이 없습니다. 그래서 아래 메시지가 나올 수도 있습니다.
그럴 경우 보통 실행프로그램 혹은 dll 프로젝트를 생성할때 정적으로 생성하면 됩니다.

그렇지 않다면 아래 경로에서 해당 dll을 찾은 뒤, 자신이 개발하여 배포하는 프로그램과 같은 위치에 dll을 위치시켜 놓으면 에러가 발생하지 않습니다.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist