簡體   English   中英

在 windows 上,是否可以在不使用 PATH 環境變量的情況下讓 dll 在另一個文件夾中查找依賴項?

[英]On windows is it possible to get dll's to look for dependencies in another folder without using the PATH environment variable?

在 linux 上,我可以將共享庫的RPATH設置為$ORIGIN:$ORIGIN../lib 這告訴 DLL 在與共享庫相同的目錄以及../lib文件夾中查找。 我在 windows 上讀到過,您只需將../lib的絕對路徑(例如)添加到PATH 這種方法有替代方法嗎? 我希望我的 dll 在../lib文件夾中查找,但並不真正希望它出現在路徑上。 這可能嗎?

如果主 DLL 動態/延遲加載依賴的 DLL,它可以在加載它們之前調用SetDllDirectory() (或者更好的是AddDllDirectory() )。

如果主 DLL 靜態鏈接到依賴的 DLL,但 EXE 動態/延遲加載主 DLL,則 EXE 可以在加載主 Z5884E4040D5116AD9EBE3之前調用(Add|Set)DllDirectory()

否則,您將不得不:

  • 更新%PATH%環境變量。

  • 使用指定依賴 DLL 路徑的應用程序清單。

  • 使用DLL 重定向

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM