2011-04-18 4 views
0

Visual Studio 2005를 사용하여 DLL을 작성하고 있습니다. 텍스트 편집기에서 DLL을 열면 다음과 같이 여러 개의 MS CRT를 참조 할 수 있습니다. 의존성 요소가 참조하는 DLL의 이름을 어떻게 찾을 수 있습니까? 나는 특히 CTR의 8.0.50727.5592 버전에 연결되는 종속성의 출처를 찾기 위해 노력하고 있습니다. 이것이 마지막 것입니다.DLL 매니페스트에서 CRT 종속성 분석

아이디어가 있으십니까?

+0

바이너리 또는 텍스트 편집기를 사용할 때 항상 즉시 참조 만 볼 수 있습니다. 다른 DLL은 무엇을 의미합니까? 또는 msvcr80.dll을 찾으십니까? C : \ Windows \ WinSxS를보십시오. – harper

답변

0

나는 당신이이 경우에 필요한 정확히 무엇을 말할 것이다, 그러나 Dependency Walker 일부 빛을 흘렸다 수 있는지 여부를 확실하지 않다 그것. 종속 DLL 중 CRT에 의존하는 DLL을 표시하고 확실하지는 않지만 매니페스트의 버전을 표시 할 수 있습니다.

+0

감사. 그러나 depends.exe는이 문제에 도움이되지 않았습니다. – Paul

1

대부분의 경우, 사용중인 다른 버전의 런타임을 사용하는 타사 라이브러리와 연결되어 있기 때문에 종속성이 자동으로 주입됩니다. 당신의 dll 링크가있는 라이브러리를 확인하십시오. 그리고 그들 중 하나가 당신의 정확한 의존성을 가질 것입니다. 그런데 VS2005를 사용하여 dll을 열고 포함 된 매니페스트를 볼 수 있습니다.

+0

이것이 문제라고 생각합니다. 그러나 내가 종속물을 두 번 확인했지만, 어떤 제 3자가 최신 CRT를 언급하고 있는지 파악할 수 없었습니다. – Paul

1

오래 전부터 알고 있었지만 동일한 문제가있어서 포함 된 라이브러리의 모든 종속성을 나열하는 훌륭한 도구를 발견했습니다. VS 2010을 사용합니다 :
명령 프롬프트에서 Microsoft Visual Studio 10.0 \ VC \ bin으로 이동하여 다음 명령을 실행하십시오.
link/dump/directives libpathandname.lib 정확한 CRT 버전을 포함한 모든 링커 종속성을 나열합니다.