我正在使用sqldb从我的DLL中连接到Firebird。这失败,因为它找不到fbclient.dll,它实际上存在于与我的DLL相同的目录中。 GetCurrentDir
返回Windows系统文件夹的路径。使用DLL的路径执行SetCurrentDir
会成功更改当前目录,但仍然无法正常工作。我该怎么做才能让sqldb在我选择的位置使用fbclient.dll?
答案 0 :(得分:3)
从the wiki page
开始,似乎没有办法明确指定可以加载Firebird客户端库的目录。因此,作为一种解决方法,您可以使用SetDllDirectory
函数,该函数将向其唯一参数提供的目录添加到用于查找应用程序的DLL库的搜索路径中。随后调用用于加载Firebird客户端库的LoadLibrary
函数将通过搜索列表在SetDllDirectory
函数调用添加的位置找到它。