2014-01-31 140 views
8

我使用的DLL一個在我的應用程序有一些問題,我跑的Dependency Walker就可以了。我不知道如何讀它,但我得到了以下結果enter image description here閱讀的Dependency Walker輸出

沒有暗示任何的x86-x64的不相容性?無論如何,我可以解決這個問題嗎?

Error: At least one required implicit or forwarded dependency was not found. 
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. 
Error: Modules with different CPU types were found. 
Warning: At least one delay-load dependency module was not found. 
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. 
+1

剛一說明:如果可能的話,包括錯誤消息文本(附加),所以它是用戶更容易找到這個線程。謝謝;-) –

+0

剛剛編輯的錯誤是相當具有描述性的,但我的問題是,如果有這麼多的問題,他們如何編譯DLL以開始? – TeaLeave

回答

7

當您查看64位版本的Dependency Walker中的32位可執行文件時,您通常會看到那種視圖。因爲Dependency Walker是64位的,所以當它試圖在DLL搜索路徑上查找DLL時,它會找到64位版本。您的32位程序將在WOW64仿真器中運行並找到32位版本。

所以,你已經提交的截圖中,有什麼都予以關注。

如果您有您的應用程序依賴的問題在這裏我建議你下的Dependency Walker的個人資料模式下運行程序(從配置文件菜單項)。這會給你詳細的診斷實際發生在加載時間和運行時間的情況。上面介紹的屏幕截圖來自靜態分析,而且這種靜態分析通常是不完整的,並且會有不準確的地方。確保程序加載時發生的情況的唯一方法是在加載時調試它。

+4

** TL; DR **:用於檢查32位exe,請使用32位版本的Dependency Walker。同樣,對於檢查64位exe使用64位版本的Dependency Walker。 – mozzbozz

+0

方便的工具自動啓動正確的版本https://github.com/juntalis/depends-launcher – Sam