- - PR -
JNIについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-07 07:36
Java ラッパークラスのソースコードです。
| ||||||||
|
投稿日時: 2005-12-07 07:38
VC++ JNIのソースコードです。
| ||||||||
|
投稿日時: 2005-12-07 07:43
ソースコードは以上です。
#汚いコードでスイマセン 以下、具体的な作成方法・実行方法を書いておきます。 【VB DLLの作成】 1.VB6を起動し、「ActiveX DLL」を新規作成します。 2.プロジェクト名とクラス名に適切な名前をつけます。 プロジェクト名:VbCom クラス名:OtherSystem 3.クラスモジュールにソースコードをコピペします。 4.ビルドしてVbCom.dllを生成します。 5.regsvr32コマンドでDLLをCOMとして登録します。 regsvr32 c:\\VbCom.dll #登録解除したい場合は次のようにします regsvr32 /u c:\\VbCom.dll 【Java ラッパークラスの作成】 1.OtherSystem.javaファイルにソースコードをコピペします。 2.コンパイルします。 javac OtherSystem.java 3.JNIヘッダファイルを生成します javah -jni OtherSystem 【VC++ JNIの作成】 1.VC++6を起動します。 2.「Win32 Dynamic-Link Library」を新規作成します。 プロジェクト名:VbComWrapper ウィザードで「空のプロジェクト」を選択 3.C++ソースコードを新規作成し VbComWrapper.cpp(ファイル名は任意)、ソースコードをコピペします。 4.javahで自動生成されたヘッダファイル(OtherSystem.h)をプロジェクトフォルダにコピーします。 5.VBでビルドしたDLL(VbCom.dll)をプロジェクトフォルダにコピーします。 6.ビルドして、VbComWrapper.dllを生成します。 【動作確認】 JNI DLL(VbComWrapper.dll)を適当な場所(パスの通ったところ)にコピーし OtherSystem.classを実行します。 java OtherSystem #なにか不明な点などがございましたら、ご質問ください。 #私はJava素人なので、Javaについては詳しくありませんが(~_~;) | ||||||||
|
投稿日時: 2005-12-07 09:48
Tdnr_Symさん、おはようございます。
サンプルソースありがとうございます。 もしかして昨晩の遅い時間に作ってくださったのですか? 本当に感謝しております。 もう何と言っていいのか言葉がありません。 Tdnr_Symさんのおかげで希望の光が見えてきました。 VBやVCは少し触れたことがある程度なので 環境設定に時間がかかってしまうかもしれませんが、 これからVBとVC++6をインストールして動かしてみます。 うまく動きましたら報告いたします。 | ||||||||
|
投稿日時: 2005-12-07 11:21
Tdnr_Sym さんには悪いけど、MMX さんの紹介している JCom を使ったほうがいいと思います。JCom を使ったほうが情報も多く扱いやすいですし、なにより JNI を意識しなくて良い(自分で C のコードを書く必要が一切ない)というメリットがあります。 ちなみに、JCom は、渡辺さんという日本の方が作成されたもので、日本語のドキュメント・サンプルがとても充実しています。 | ||||||||
|
投稿日時: 2005-12-07 12:46
いえ、全然悪くないですよ。仰るとおりですから。 私もどこまでサポートできるか分かりませんし、 ネット上のやり取りだけではきっと限界があると思います。 ヒロピンさんが、どの方法を選択されるか分かりませんが VCに詳しくなかったり、ヒロピンさんのお近くにVCに詳しい人がいないのであれば、 あまりお勧めできる方法ではありませんね。
私もJComをダウンロードして、ドキュメントを眺めていたら、 日本人の方が作成されてるんだなぁと気づきました。 | ||||||||
|
投稿日時: 2005-12-07 13:22
私の会社にVCに詳しい人はいませんが、
Tdnr_Symさんに教えていただいた方法で とりあえずやってみます。 私もJComをダウンロードしてみましたが、 私にはマニュアルだけ見てソースを作る力は ないので・・・ 午前中はインストールで終わってしまったので、 これからソースを書いて動かしてみます。 [ メッセージ編集済み 編集者: ヒロピン 編集日時 2005-12-07 13:23 ] | ||||||||
|
投稿日時: 2005-12-07 14:18
Tdnr_Symさん、教えてください。
VC++でコンパイルしたところ下記のようなエラーが出ました。 othersystem.h(2) : fatal error C1083: インクルード ファイルがオープンできません。 'jni.h': No such file or directory 何かパスが足りないのでしょうか? |