ここで奇妙な問題が発生しました。私の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データベースが見つかりません。.dllmyapp.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 );