在我的一個項目中,我使用了一個Delphi應用程序,它可以動態地加載一個包裝DLL(導出C樣式函數),這個DLL又是靜態鏈接到一堆第三方DLL的。地獄圖書館(又名DLL地獄)
它可以在我的測試機器上正常工作,但在我的客戶計算機上,它未能初始化出現錯誤消息,例如「無法在TMYlibrary.dll中找到入口點_somefunction @ 4AKKZ」。經過對sysinternal的進程監視器的一些調查後,我意識到Windows會首先在Windows/sytem32中查找fror DLL,因此如果在system32中存在一個類似於我的 DLL的DLL,Windows會選擇該DLL並嘗試找到我的功能入口點 - 這將失敗。
您是否知道可以更改Windows'DLL的搜索行爲?
其他信息
- [更新] .exe文件位於應用程序的文件夾樹的頂層。
- 包裝和第三方的dll ARê均設在我的應用程序文件夾
- 開發平臺的子文件夾/ bin目錄窗口XP/7,使用VS2008爲源DLL1和Delphi 2010的應用程序
哪裏EXE文件在什麼位置?還在\ bin文件夾中? – 2010-07-22 14:19:17