小澤です。 いつもお世話になってます。
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を定義してもエラーになってしまいます。
パスを指定するやり方をご教示下さい。
よろしくお願いします。
いおりです。
こんにちは。
ちゃんと検証してませんのでもしかしたら程度ですが。 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
小澤です。 いつもお世話になってます。
いおりさん、こんばんは。 返信、ありがとうございます。
カレントディレクトリとは、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
いおりです。
こんばんは。
会社帰りに携帯からとりあえず返信したのでわかりにくくてスミマセン。
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
いおり様
いつもお世話になってます。 小澤です。
上記の通り試してみたところ、問題なく動作しました。 ありがとうございました。
2014年12月20日 0:08 Takayuki Orito iori.ayane@gmail.com:
いおりです。
こんばんは。
会社帰りに携帯からとりあえず返信したのでわかりにくくてスミマセン。
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
Qt-users mailing list Qt-users@qt-users.jp http://qt-users.jp/mailman/listinfo/qt-users