The application was unable to start correctly (0xc000007b). Click OK to close the application
카테고리 없음 2012. 9. 17. 18:47작업 컴퓨터에서 생성한 실행파일을 새로 설치한 윈도우2008에 옮겨서 실행했더니 런타임 dll이 없다면서 실행되지를 않습니다. 그래서 런타임 라이브러리를 바이너리와 같은 폴더에 복사했더니 0xc000007b 의 에러와 함께 실행이 되지를 않습니다.
간단히 결론만 말하면 제 경우는 실행파일의 Platform은 Win32인데 런타임라이브러리는 x64를 사용해서 발생한 문제입니다.
1. 아래 경로에서 런타임 라이브러리의 설정을 확인합니다.
Property - Configuration Properties - C/C++ - Code Generation - Runtime Library
Multi-threaded DLL 또는 Multi-threaded Debug DLL 로 되어있나요?
그렇다면 런타임 라이브러리가 외부에 DLL로 존재해야 합니다.
디버그 모드일 경우 : msvcp100d.dll, msvcr100d.dll
릴리즈 모드일 경우 : msvcp100.dll, msvcr100.dll
2. 만들어진 실행 파일은 Platform이 Win32 인가요?
그렇다면 런타임 라이브러리 파일이 Win32인지 확인하시기 바랍니다. 제 경우는 실행파일의 Platform은 Win32로 설정한 후에 빌드를 하고 dll은 x64용으로 사용해서 문제가 된 경우입니다.
새로 설치한 윈도우2008에서 바이너리를 실행하니 런타임 라이브러리( msvcp100d.dll, msvcr100d.dll ) 를 찾을수 없다면서 메시지 박스가 뜨길래 작업 컴퓨터에서 해당 dll 파일들을 찾아서 바이너리와 같은 폴더에 복사해서 실행하였더니 아래와 같은 에러가 발생합니다.
The application was unable to start correctly (0xc000007b). Click OK to close the application
한참후에야 이유를 알아냈는데 작업 컴퓨터에서 검색된 목록을 다시 살펴 보니 아래처럼 32비트용과 64비트용이 따로 존재하였습니다. 이름이 똑같길래 별 생각없이 복사해서 옮겼는데 64비트 버전이었던 것입니다.
실행 파일 Platform 에 맞도록 Win32용을 복사해서 실행하니 문제 없이 실행되는걸 확인하였습니다.