3
我正在使用sqldb從我的DLL中連接到Firebird。這個失敗是因爲它找不到與我的DLL實際存在於同一目錄中的fbclient.dll。 GetCurrentDir
將路徑返回到Windows系統文件夾。使用DLL的路徑執行SetCurrentDir
已成功更改當前目錄,但仍不起作用。我能做些什麼來讓sqldb在我選擇的位置使用fbclient.dll?如何讓sqldb使用特定的fbclient.dll?
我正在使用sqldb從我的DLL中連接到Firebird。這個失敗是因爲它找不到與我的DLL實際存在於同一目錄中的fbclient.dll。 GetCurrentDir
將路徑返回到Windows系統文件夾。使用DLL的路徑執行SetCurrentDir
已成功更改當前目錄,但仍不起作用。我能做些什麼來讓sqldb在我選擇的位置使用fbclient.dll?如何讓sqldb使用特定的fbclient.dll?
從the wiki page
看來是沒有辦法明確規定從何處火鳥客戶端庫可以加載的目錄。因此,作爲一個變通方法,您可以使用SetDllDirectory
功能,這將增加提供給它的唯一參數用於查找DLL庫應用程序的搜索路徑的目錄。用來加載Firebird的客戶端庫LoadLibrary
函數的後續調用將通過搜索列表,發現它在你被SetDllDirectory
函數調用添加的地點。