dll是Windows世界的支柱,在開發一個Windows應用程序時,為了模塊化降低耦合,需要將一些獨立的功能獨立成dll,而這些dll又可能引用了第三方的dll。
程序構建成功后,運行,結果出現了運行時的錯誤:
無法定位程序輸入點*於動態鏈接庫*.dll上。
遇到此類問題,一般無從下手。
一般性思路:
打開depends.exe,在其中打開出錯的dll
在左側查看錯誤的依賴dll是哪個,一般忽略系統dll
點到出錯的依賴dll上,我這里是libcrypto-1.1-X64.dll
看右側的導入導出項目,仔細觀察可以發現EVP_rc5_32_12_16_ofb果然存在問題
使用everything搜索,發現這個依賴dll是openssl中的東西,項目中已經更換了openssl的版本為1.1.1,於是需要將1.1.1版本的libcrypto-1.1-X64.dll拷貝至運行目錄,至此解決!
總結:得益於depends.exe工具,在分析dll問題時首先應該想到它!