- - PR -
JNIについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-06 16:18
検索語
java vb dll や Java-COM Bridge で検索 してみましょう C/C++による高いプログラミング能力 http://www.google.co.jp/intl/ja/jobs/eng.html [ メッセージ編集済み 編集者: MMX 編集日時 2005-12-06 16:29 ] | ||||
|
投稿日時: 2005-12-06 16:49
java vb dll 辺りの検索語では色々検索しているですが、
コードの例が載っているサイトが見つかりません・・・。 ご存知の方がいましたらご教授願います。 Java-COM や Bridge という言葉は初めて聞きましたので、 現在調査中です。 | ||||
|
投稿日時: 2005-12-06 17:26
こんにちは。
作成したVBのバージョンは分かりますでしょうか? VB6以前とVB.NETで作られるDLLは別物になります。 ・VB6以前のdllはActiveX DLLになります。 ・VB.NETのdllはマネージ(CLRで動作する)DLLになります。 どちらの種類のDLLか分からなければ、ツールを使えば判別できますが いずれにせよ、COM(Component Object Model)による呼び出しとなると思います。 | ||||
|
投稿日時: 2005-12-06 17:52
Tdnr_Symさん回答ありがとうございます。
VBのバージョンは6.0です。 COM(Component Object Model)を使用してVBで作ったdllを呼んでいる サイトや方法をご存知でしたらご教授願います。 こちらには詳しい人間がいないので、手も足も出ない状態です。 よろしくお願い致します。 | ||||
|
投稿日時: 2005-12-06 18:48
こんにちは。
JNIはC言語だけではなくC++も使えますよね。 COMを使用されるなら、C言語よりC++のほうが良いと思います。 VC++なら尚良いと思います。 VB6で作成したDLLは、「デュアルインターフェイス」のCOMとなります。 つまり、「ディスパッチインターフェイス」と「カスタムインターフェイス」の 2つのインターフェイスを公開しています。 このことは、2通りの方法で呼び出しが出来ることを意味しています。 手前味噌になりますが、CからC#を呼ぶ方法の 2.COMのディスパッチインターフェイスを使った呼び出し方 3.COMのカスタムインターフェイスを使った呼び出し方 を参考にしてみてください。 3.の方法に関しては、VC++の#importディレクティブという機能を使うと、もっと簡単に記述できます。 呼び出したいVB6のDLLが、どのようなものなのか分かりませんので、 具体的にどのようにしたらよいか、回答が難しいです。 例えば、 ・VB6DLLのメソッド呼び出しに何らかの引数が必要なのか? ・単一のメソッド呼び出しだけで事足りるのか、それとも複数メソッドを呼ぶ必要があるのか? ・VB6DLLのCOMインスタンスの寿命(生存期間)管理は、どうしたらよいか? つまり、Javaの単一のメソッド呼び出し内だけで、COMインスタンスを生成/呼び出し/破棄してよいのか? など。 どうでしょうか? もう少し情報を頂ければ、もう少し具体的な回答ができると思うのですが… | ||||
|
投稿日時: 2005-12-06 18:58
Java-COM Bridge
で検索で出ます http://sourceforge.net/projects/jcom 先頭段落を 機械翻訳サイトに投げ込み。 JCom(JavaCOMブリッジ)に関してJComは、JavaとJavaクラスからのCOMオブジェクト・アクセスを可能にするComの間のブリッジ・ライブラリーです。 例:エクセル・ワークシートを作成する、あるいはJavaアプリケーションから Visual Basic COMアプリケーションを使用すること。 ↑ 頭脳は要りません .net ブリッジもついでに見つかります。 http://www.jnbridge.com/ http://www.eclipse.org/articles/Article-ActiveX%20Support%20in%20SWT/ActiveX%20Support%20in%20SWT.html http://www.codeproject.com/java/javacom.asp http://sourceforge.net/projects/jacob-project/ ------------------ リンク集 追加 Java/JNI/Tool http://discypus.jp/wiki/?Java%2FJNI%2FTool Jawin は ObjectScript で使われています http://objectscript.sourceforge.net/ [ メッセージ編集済み 編集者: MMX 編集日時 2005-12-21 10:50 ] | ||||
|
投稿日時: 2005-12-06 19:22
Tdnr_Symさん、MMXさん回答ありがとうございます。
>MMXさん 英語のサイトは調べてませんでした。すいません。 >Tdnr_Symさん VBで作られたdllをJavaから呼ぼうとしています。 間にC/C++を経由しなくてもCOMは使用可能でしょうか? 今回のdllを使用する部分のシステム概要は、 1.提供されたdllを使用して、他システムよりデータを取得し、こちらのDBへ登録 2.登録したデータを必要に応じて更新 3.更新したデータをdllを使用して他システムへ送信 となります。 下記の答えはまだ予想の段階ですが、多分こんな感じになります。 >・VB6DLLのメソッド呼び出しに何らかの引数が必要なのか? おそらく必要になると思います。 >・単一のメソッド呼び出しだけで事足りるのか、それとも複数メソッドを呼ぶ必要があるのか? 他システムからもらった仕様書によるとメソッドが複数あるので、 複数メソッドを呼ぶ必要がありそうです。 >・VB6DLLのCOMインスタンスの寿命(生存期間)管理は、どうしたらよいか? つまり、Javaの単一のメソッド呼び出し内だけで、COMインスタンスを生成/呼び出し/破棄してよいのか? 複数メソッド呼ぶと思うので、インスタンスの生成は1つの処理で1つにすると思います。 足りない情報がありましたら、ご指摘ください。 よろしくお願い致します。 | ||||
|
投稿日時: 2005-12-06 19:37
こんばんは。
あら、そんな便利なライブラリがあったんですね。 私もカラダの切れがなかったようです(~_~;) まだJComについて調べていないですが、 COMのインターフェイスが単純じゃないのであれば こちらのライブラリを使うほうが便利な気がします。 |