2012-01-25 2 views
3

나는 새로운 것을 배우는 코드를보고 있습니다. C++ 코드가 UI라는 프로젝트에 있는데 여러 종속성이 있습니다.이 빌드는 올바르게 빌드되고 오류를 반환하지 않습니다. Visual Studio 2008의 동일한 솔루션에서 새 C# Windows Forms 프로젝트를 만들고 UI 프로젝트에서 생성 한 dll에 대한 참조를 추가하고 "using"문을 추가했습니다. UI 프로젝트에 정의 된 대화 상자 중 하나를 올리면 코드가System.IO.FileNotFoundException 처리되지 않았습니다. 메시지 = "지정한 모듈을 찾을 수 없습니다. (HRESULT 예외 : 0x8007007E) "

과 같은 코드를 갖습니다.

디버그에서 프로젝트를 실행할 때 "새로운"부분에 도달하면 누락 된 모듈에 대한 정보가없는 위 예외가 발생합니다.

누락 된 모듈을 확인하는 방법은 없습니까? UI 프로젝트의 코드를 살펴 보지 않으시겠습니까?

(이 질문을 다시 말하면 닫히지 않습니다. 누군가가 "아니오, 확실하지 않습니다"에 대한 최종 답을 줄 수 있다면 매우 도움이 될 것입니다. 누가 이전 버전을 폐쇄)

편집 :. 문제의

System.IO.FileNotFoundException occurred 
    Message="The specified module could not be found. 
(Exception from HRESULT: 0x8007007E)" 
    Source="ui" 
    StackTrace: 
    at ui.UIDialog.Startup() 
    at ui.UIDialog..ctor() in c:\..\ui\UIDialog.h:line 61 
InnerException: 

, 유용한 정보는 어디 분명 없다!

32/64 비트 문제가 아닙니다. 여기에 오기 전에 일반적인 "BadImageFormatException"을 가졌으므로 모든 것을 32 비트로 강제했습니다.

+1

예외 메시지에 스택 추적이 있어야합니다. 게시하면 문제가있는 곳을 파악할 수 있습니다. 또한 여러분이 제공 한 것을 보면서, 저는 사지에 나가서 32 비트 대 64 비트 문제라고 추측합니다. 한 어셈블리를 32 비트 용으로 컴파일하고 64 비트/모든 CPU 용으로 컴파일 할 수 있습니까? 32 비트 코드는 64 비트 코드를 호출 할 수 없으며 그 반대의 경우도 마찬가지입니다. –

+0

나는 @Cody에 동의한다. 플랫폼 타겟 문제와 같은 것 같습니다. 예외는 일반적으로 꽤 많은 정보를 전달하므로 exception.ToString()의 결과를 게시하면 문제를 진단하는 데 도움이됩니다. –

+0

나는 명백한 것을 진술하고 싶지 않지만, 61 행에서 'UIDialog.h'는 무엇을 말하는가? – Gabe

답변

1

참조 된 dll에서 MSIL 디스어셈블러를 사용하고 dll의 모든 종속성에 대한 매니페스트를 확인할 수 있습니다. 디스어셈블러는 Windows SDK 도구의 일부입니다.

또는 수시로 DependencyWalker가 사용되었지만 항상 사용됩니다.

+0

모든 종속성을 수동으로 확인하는 것은 내가 피하려고했던 것입니다 (결국 내가 한 일이지만). 그래도 고마워! – Melanie

관련 문제