나는 지난 주 동안이 예외를 쫓고있다."xxx.dll로 가져온 프로 시저를로드 할 수 없습니다"소스를 어떻게 찾을 수 있습니까? 예외?
상황은 다음과 같습니다
나는 응용 프로그램은 관리되지 않는 코드 라이브러리의 래퍼 DLL을 포함 2010 년 Visual Studio에서 C#으로 작성하고 구축 된 응용 프로그램이 있습니다. 비 관리 코드는 C++로 작성되었으며 Visual Studio 2008에서 작성되었습니다.이 코드는 추가 라이브러리 (Qt)와 코드 대상 WinCE 버전 5 (필드에서 지원되는 장치로 인해 필요함)를 필요로하기 때문에 필요합니다.
다양한 종속성 워커 (VS 2008에 종속 됨, dependency_walker 및 Dependz)를 비롯하여 SysInternals의 Reflector 및 Process Monitor와 같은 다른 도구를 사용하여 여기에서 보았던 많은 제안을 시도했습니다.
모든 도구 (리플렉터) 나 DCOMP.DLL, GPSVC.DLL, & IESHIMS.DLL과 같은 내 환경 (Win 7)에서 사용되지 않는 이전 종속성을 표시하지 않습니다.
디버거에서 내 Managed Wrapper DLL을 참조하는 개체를 인스턴스화 할 때까지 코드를 단계별로 실행할 수 있습니다. 그것은 객체의 인스턴스화를 시작하지 않지만 즉시 예외를 throw합니다.
Process Explorer (SysInternals)에서 필요한 보조 DLL과 함께로드 된 Managed DLL을 볼 수 있습니다. 문제의 시점에있는 프로세스 모니터 (SysInternals에서)에는 발견되지 않은 메시지 스택이 없습니다. 그냥 실패합니다.
이 문제를 찾는 데 도움이되는 아이디어 나 의견이 있으면 알려주세요. 작업에 대한
데스크톱 컴퓨터에서 CE 용 Qt 버전을 사용하고 있습니까? 진단을 원한다면 Google 로더 스냅을 더 이상 보지 마십시오. –
사실 아니요. Windows 및 Windows CE 버전 모두에서 Qt를 재구성합니다. 그러나 실행되는 코드는 각각 동일합니다. – user1542042
먼저 관리되는 부분과 관리되지 않는 부분을로드하는 문제를 구분합니다. 래퍼를 스텁으로 변환하고로드하려고 시도합니다. 네이티브 프로세스에 C++ dll을로드하고 이것이 작동하는지 아닌지 확인하십시오. 래퍼 코드를 게시하면 도움이 될 수 있습니다. –