我在这里遇到了一些奇怪的问题。我在我的电脑上构建了一些应用程序,调试和发布,它工作正常。当我将它复制到其他 PC 时,没有任何开发内容,就会出现问题:
我的应用程序应该打开一些 firebird 数据库文件.FDB
并从那里获取一些数据。
问题有点复杂(对不起,我的英语不好),但我试着解释一下
在我的电脑上
我进入fbclient.dll
了带有 .exe 的文件夹。如果我从我的.exe
文件所在的目录中删除它 - 出现与其他电脑相同的错误 - 它只是无法打开 .FDB
文件。什么时候.dll
在它的地方 - 一切都很好。
当我使用Dependency Walker
并打开时myapp.exe
- 没有任何 Firebird.dll
文件!这就像它不使用fbclient.dll
甚至根本不使用gds32.dll
,但我猜这不是真的!
在其他电脑上
fbclient.dll
在它的地方myapp.exe
。但是它无法打开任何数据库文件 - 应用程序不起作用!我尝试安装 Firebrid 2.5
(在我的电脑上我得到了相同的)但它没有改变任何东西。再次Dependency Walker
发现没有任何 firbird 数据库.dll
与myapp.exe
.
我希望你明白这个问题。
我怎样才能myapp.exe
在其他 PC 上打开`FDB 文件?
附言
应用程序创建于Qt
,如果此信息可以帮助
UPD 我厌倦了这个,但它也没有帮助(但它帮助了许多其他人):
复制sqldrivers
到文件夹myapp.exe
并写在main.cpp
QStringList list_path;
QDir dir = QDir(app.applicationDirPath()+"./sqldrivers");
list_path << dir.absolutePath () << app.libraryPaths ();
app.setLibraryPaths( list_path );