2017年2月12日 星期日

呼叫c++寫的dll時發生 "找不到指定的模組,發生例外狀況於HRESULT:0x8007007E)"

一般來說,被引用的dll檔放在執行檔目錄下都可以正確被引用
本篇要解決的問題是,被呼叫的dll檔確定已存在正確位置
執行程式呼叫該dll檔卻發生找不到dll檔的問題。

簡單紀錄解決方法如下:

1.開啟 VS2015開發人員命令提示字元
(通常在開始功能表的Visual Studio 2015下)

2.執行 dumpbin.exe xxxxx.dll /dependents 列出該dll檔所引用的其它dll
(xxxxx.dll就是你的程式執行時系統說找不到的dll檔名)



3.逐一確認發生問題電腦上是否有安裝這些dll

  • x86程式用的應該在 C:\Windows\SysWOW64
  • x64程式用的應該在 C:\Windows\System32

4.從安全的來源將缺少的dll檔補上
如果不知道該安裝那些軟體會重新安裝這些dll,可嘗試從其它電腦複製