我有一個exe文件取決於libeay32.dll。兩者都編譯爲32位。Windows 7 64位不正確PATH當加載32位庫的32位exe
我已將exe複製到C:\ Program files(x86)\ app \ bin,並將dll複製到C:\ Program files(x86)\ app \ lib。 爲了確保正確的工作,我已將C:\ Program files(x86)\ app \ lib添加到路徑中。
在Windows 7 64位上,當我執行exe文件時,我得到了libeay32.dll未找到的錯誤。
對32位使用依賴關係walker,庫正確位於C:\ Program files(x86)\ app \ lib。 使用sysinternal進程資源管理器應用程序正確執行。 使用cmd也可以。 使用依賴walker 64位,我可以看到缺少的庫。 將這兩個文件複製到syswow64也可以很好地工作。
如果應用程序被編譯爲32位...
爲什麼心不是窗戶尋找32個庫? 如果目錄已經在路徑上,爲什麼沒有解決圖書館?
我的猜測是,W7忽略了路徑,但根據這個: http://msdn.microsoft.com/en-us/library/ms682586%28v=vs.85%29.aspx 它不應該!
爲什麼我不能運行我的exe文件位於路徑上的依賴? 我應該註冊圖書館還是什麼?
任何想法將不勝感激。
編輯:
程序將其正確啓動/從開始菜單 - >程序完成時,但不能直接在該.exe ...... WTF執行?
使用procmon中似乎試圖打開(注意缺少「「): 」C:\ Program Files文件(x86)的\ MYAPP \第三方\ OpenSSL的\ LIBEAY32.DLL「 但在其路徑正確(複查: 「C:\ Program Files文件(x86)的\ MYAPP \第三方\ OpenSSL的」)
ANSWER?: 是有訣竅的場景/臭蟲設置「C:\ Program Files文件(86) 「在路徑上,導致Windows試圖加載」C:\ Program Files文件(x86)「,而不是 ????(請參閱使用procmon沒有任何過濾器)
Windows 7 x64錯誤?
據我所知,只查找PATH查找EXECUTABLE。一個Lib或DLL無法自行執行 - 只能支持另一個可執行文件。 – Arun
@Arun - Windows確實使用路徑來定位DLL的。請參閱http://msdn.microsoft.com/en-us/library/7d83bc18.aspx – shf301
我的不好,我收回。是的,它確實。非常感謝您糾正我的錯誤! – Arun