2011-01-12 2 views
10

나는 이것에 대해 인터넷 검색을하고 거기에 몇 가지 원인이 있음을 알게되었습니다.MSVCP100D.dll을 찾을 수 없기 때문에 응용 프로그램을 시작하지 못했습니다. 응용 프로그램을 다시 설치하면 다시 작동 할 수 있습니다.

내 응용 프로그램이 비주얼 스튜디오 (2010)의 다른 버전에 내장 된 .DLL 파일을로드하려고 할 때이 일이 내가 비주얼   스튜디오   2008 잘 DLL 파일로드 ...에서 동일한 프로젝트를 빌드하는 경우

이 문제인지는 모르겠지만, 비주얼   스튜디오   2010 DLL 파일 버전은 Windows   7 X32에 내장되어 있습니다, 및 Windows   비스타 64 비트 비주얼   스튜디오   2008

+5

"릴리스"모드 ("디버그"모드가 아님)로 응용 프로그램을 다시 컴파일 한 다음 대상 컴퓨터에 적절한 프로세서 아키텍처 용 Visual C++ 2010 재배포 가능 패키지를 다운로드하여 설치하십시오 : [http : // www. microsoft.com/downloads/en/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displaylang=en), [x64] (http://www.microsoft.com/downloads/en/details.aspx?FamilyID) = bd512d9e-43c8-4655-81bf-9350143d5867). 대상 시스템은 사용자가 빌드 한 것과 동일한 버전의 런타임을 설치해야합니다. 이 경우 v10.0입니다 (VS 2010). –

+1

다음 두 링크를 참조하십시오. [http://www.buggymind.com/305](http://www.buggymind.com/305) [http://msdn.microsoft.com/ko-kr/library/ abx4dbyh.aspx] (http://msdn.microsoft.com/ko-kr/library/abx4dbyh.aspx) 도움이되기를 바랍니다. –

답변

11
와 반대편에

동적으로 MSVC 런타임에 연결하는 경우 설치해야합니다 앱을 실행할 모든 시스템의 런타임.

이 경우 런타임의 디버그 버전에 연결되어있는 것처럼 보입니다. 디버그 버전의 런타임에 링크 된 앱을 배포하는 것은 정상적인 방법이 아닙니다.

+0

multithread dll 디버그에서 코드 생성 옵션을 'multithread dll – Marko29

+0

컴파일로 변경했는데 문제가 해결되지 않았습니다. 어디에서 봐야 할 지 모르겠다. – Marko29

+0

여전히 100D인지 아니면 지금 100 만보고 되었습니까? 100D라면 옵션을 제대로 선택하지 않았거나 다시 컴파일 할 필요가 없습니다. 100이라면 VS DVD에서 MSVC 런타임 설치 프로그램을 다운로드 받아 (또는 아마 다운로드 할 수 있습니다) 대상 시스템에서 실행해야합니다. – Rup

7

런타임을 배포하지 않으려면/MD에서/MT로/Visual Studio에서 런타임 라이브러리 옵션을 전환 할 수 있습니다 (속성 -> C/C++ -> 코드 생성 -> 런타임 라이브러리) MDd에서/MTd.

이 응용 프로그램을 배포하는 경우 디버그 버전이 아닌 런타임 라이브러리의 릴리스 버전에 동적으로 또는 정적으로 연결해야합니다.

2

약간의 관련 조언 : RELEASE 버전에서 빌드하고 실행하는 동안 * 248d.lib 파일을 추가하지 마십시오.

나는 다른 블로그의 조언을 따르고 있으며 실수로 * 248d.lib와 248.lib 파일을 모두 추가했습니다. 링커에서 기본적으로입력종속성을 추가합니다., * 248d.lib 파일이 없는지 확인하십시오 (여기에서 248은 버전 2.4.8입니다).

두 개의 .lib 파일 사본, * 248 및 다른 * 248d 파일이 있다는 것을 알기 전까지는 릴리스 모드에서 작동하지 않는 이유가 궁금합니다. 릴리스 모드에서 d 파일을 포함하면 DLL 문제가 발생합니다.

관련 문제