いおりです。

こんばんは。

会社帰りに携帯からとりあえず返信したのでわかりにくくてスミマセン。

JavaアプリからDLLを呼び出しているとのことですのでアプリがjarですと、
カレントディレクトリはわかりにくいかもですね。
Javaアプリ自体が実行形式にしているのかjarファイルを実行しているのかもわかりませんが。。。

コマンドプロンプトから
c:\qtfromjava>c:\hoge\java -jar .\app.jar
のような感じで実行しているならc:\qtfromjavaがカレントディレクトリになるので
c:\qtfromjava\sqldrivers\qsqlpsql.dll
な、感じでどうかな?と思った次第です。

エクスプローラからjarをダブルクリック(関連付け)で起動しているとカレントがどこになるのかよくわかりませんので
いちど、jarへのショートカットを作ってショートカットのプロパティの作業フォルダをjarのあるフォルダにすれば
.\app.jar
.\sqldrivers\qsqlpsql.dll
という感じです。

もしかしたらな感じですが、以上です。



2014年12月19日 23:15 小澤和広 <kazuhiro.ozawa@gmail.com>:
小澤です。
いつもお世話になってます。

いおりさん、こんばんは。
返信、ありがとうございます。

カレントディレクトリとは、DLL直下にsqldriversを配置するということでしょうか?
はっきり覚えてないですが、色々試しましたので、ダメだったと思います。



2014年12月19日 18:03 Takayuki Orito <iori.ayane@gmail.com>:

いおりです。

こんにちは。

ちゃんと検証してませんのでもしかしたら程度ですが。
sqldriversフォルダを「カレントディレクトリ」に置いたらどうでしょうか?

以上です

2014/12/19 15:43 "小澤和広" <kazuhiro.ozawa@gmail.com>:
小澤です。
いつもお世話になってます。

Qtで作成したDLLをJavaからJNA(JNIではありません)にて呼び出す
方法を実装しています。
PostgreSQLを使用しているため、qsqlpsql.dllが必要なのですが、
これを置く場所が問題で、ビルド環境が無いPCにセットした場合、
ビルドした場所のパスにqsqlpsql.dllを置かないとだめみたいです。
例:c:\Qt5.3.1\5.3\msvc2010_opengl\plugins\sqldrivers\qsqlpsql.dll

EXEから呼び出す場合は、QApplication::setLibraryPathを指定すれば
\plugins\sqldrivers\qsqlpsql.dll を任意の場所に指定することが出来ますが、
作成したのはDLLのため、QApplicaitonを定義してもエラーになってしまいます。

パスを指定するやり方をご教示下さい。
よろしくお願いします。

_______________________________________________
Qt-users mailing list
Qt-users@qt-users.jp
http://qt-users.jp/mailman/listinfo/qt-users


_______________________________________________
Qt-users mailing list
Qt-users@qt-users.jp
http://qt-users.jp/mailman/listinfo/qt-users



_______________________________________________
Qt-users mailing list
Qt-users@qt-users.jp
http://qt-users.jp/mailman/listinfo/qt-users




--
//---------------------------------------------------------
 折戸 孝行 (Takayuki Orito)
 Mail : iori.ayane@gmail.com
 Web : http://relog.xii.jp/
 Twitter : http://twitter.com/IoriAYANE