• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java JNI使用後にログファイルが生成される)

Java JNI使用後にログファイルが生成される

このQ&Aのポイント
  • JavaからC++のプログラムを呼び出し、終了するとJavaプログラムと同一ディレクトリ内にlogファイルが生成されます。
  • JavaVMのエラーまたはレジストリのエラーが原因で、解決策が見つかりません。
  • Javaのインストールやlogファイルの和訳を試しましたが問題が解決されません。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

JavaVMやレジストリを疑う前に自分らで作った部分を疑うべきだと思うんですが。 ># Problematic frame: ># C [PCardRW32.dll+0x22cd2] crwSetLineControl+0x203b2 PCardRW32.dllに何か見覚えありませんか? 私も最近JNIやってますけど、JavaVMがクラッシュするのはたいてい自分たちが作った部分に問題があるのが原因ですよ。

pokeman-v
質問者

補足

ご回答ありがとうございます PCardRW32.dllの crwSetLineControl関数は他業者さんが提供されている関数でして crwSetLineControl関数もプログラムの中では記述してないので 何だろうと思ってはいたんですが、やはりこれが原因の可能性が高いのでしょうか

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>ですが、プログラムではcrwSetLineControlは記述してないので >別の関数がcrwSetLineControlを呼び出しているかもしれないので >そこを調べてみます あまりcrwSetLineControlに固執しないでくださいね。 ># C [PCardRW32.dll+0x22cd2] crwSetLineControl+0x203b2 は、crwSetLineControlのアドレスから+0x203b2の所というだけでcrwSetLineControl関数内とは限りませんので(その場所を表現するのに一番近くのシンボルがcrwSetLineControlだったという事です) また転記できなかったログの中にはスタックトレースもあると思いますので活用されるとよいかと思います。

pokeman-v
質問者

お礼

お世話になっております。 しばらく調べさせていただき、わかったことは ・BSTRの操作は無関係 ・他社製dllのメモリアクセス違反 ということです。 dllを開発された企業に問合せを行ったところ、 Javaには対応していないのでわかりかねる。 との回答を頂き、これ以上良くなることはないかと考えております。 どこで何がアクセス違反を起こしているのかは、今後調べて参りますが 大変難しい作業であると思います。 お忙しい中ご回答頂きまして、大変ありがとうございました。 これに懲りず、また質問させて頂きますので 今後共宜しくお願い致します。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

それが原因なのかもしれないし、 それの使い方が悪いのかもしれないし それは調べてみないとわかりません。 エラーが起きてるところが原因とは限りません。 例: strcpy(NULL, "null"); strcpyでセグメンテーションエラーが起きるはずですが、strcpyが原因だと思いますか?

pokeman-v
質問者

補足

ご回答ありがとうございます なるほど そちらの例ですと、10:0で使い方が悪いですね ですが、プログラムではcrwSetLineControlは記述してないので 別の関数がcrwSetLineControlを呼び出しているかもしれないので そこを調べてみます ありがとうございます。

関連するQ&A