ここで奇妙な問題が発生しました。私のPCでいくつかのアプリ、デバッグとリリースを作成しましたが、正常に動作します。それを他のPCにコピーすると、開発用のものがない場合、問題が発生します:
私のアプリケーションはいくつかの firebird データベース ファイル.FDB
を開き、そこからいくつかのデータを取得する必要があります。
質問は少し複雑ですが(申し訳ありませんが、私の英語は下手です)、説明しようと思います
私のPCで
fbclient.dll
ビルドされた.exeを含むフォルダーに入りました。そして、自分の.exe
ファイルがあるディレクトリから削除すると、他のPCと同じエラーが表示され、 .FDB
ファイルを開くことができませんでした。その場所にあるとき.dll
- すべてがうまくいきます。
私が使用Dependency Walker
して開くと、Firebirdファイルmyapp.exe
については何もありません! .dll
まるで使っていないfbclient.dll
か、まったく使っていないように見えますgds32.dll
が、そうではないと思います!
他のPCでは
fbclient.dll
の場所にありmyapp.exe
ます。しかし、データベースファイルを開く方法はありません - アプリは動作しません! インストールしようとしましたが Firebrid 2.5
(私のPCでも同じでした)、何も変わりませんでした。また、 にバインドされたfirbirdDependency Walker
データベースが見つかりません。.dll
myapp.exe
質問を理解していただければ幸いです。
myapp.exe
他の PC で FDB ファイルを開くにはどうすればよいですか?
PS
アプリは で作成されました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 );