- PR -

JNIについて

投稿者投稿内容
ヒロピン
常連さん
会議室デビュー日: 2003/12/14
投稿数: 35
投稿日時: 2005-12-06 19:58
WebLogic8.1を使っているのですが、
WebLogicのJCOMを使ってVBで作ったdllを
呼べたりするのでしょうか?

http://edocs.beasys.co.jp/e-docs/wls/docs81/jcom/
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-06 21:41
こんばんは。

引用:

Tdnr_Symの書き込み (2005-12-06 19:37) より:

まだJComについて調べていないですが、
COMのインターフェイスが単純じゃないのであれば
こちらのライブラリを使うほうが便利な気がします。



JComをダウンロードして、ドキュメントとソースを眺めてみました。
ソースは意外と簡素ですね。Java素人の私にも理解できました。

JComはJNIを使ってディスパッチインターフェイス経由でCOMを使うようになってますね。
ディスパッチインターフェイスなので、
メソッド呼び出しの手続きが、やや面倒のように思いますが
汎用的な作りになってますし、Javaオンリーで開発したいなら
こちらがよいのではないでしょうか。

私ならば、呼び出したいCOMをラッパーするクラスをJavaで作成して
JNIでCOM呼び出しを実装する思いますが…
やることはJComのやっていることと、変わりがないですね。

#ご希望があれば、サンプルコードを作成したいと思います。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-06 22:36
こんばんは。

引用:

ヒロピンさんの書き込み (2005-12-06 19:58) より:
WebLogic8.1を使っているのですが、
WebLogicのJCOMを使ってVBで作ったdllを
呼べたりするのでしょうか?

http://edocs.beasys.co.jp/e-docs/wls/docs81/jcom/



あっ、WebLogicという製品でもCOMが使えるんですね。
Using WebLogic COM
ヒロピン
常連さん
会議室デビュー日: 2003/12/14
投稿数: 35
投稿日時: 2005-12-06 23:03
Tdnr_Symさん回答ありがとうございます。

サンプルコードを作成していただけると大変助かりす。

お願いしてもよろしいでしょうか。

今更仕様を変えるわけにもいかないので、
本当に感謝の想いで一杯です。

よろしくお願い致します。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-06 23:18
こんばんは。

引用:

ヒロピンさんの書き込み (2005-12-06 23:03) より:

サンプルコードを作成していただけると大変助かりす。
お願いしてもよろしいでしょうか。



了解しました。頑張ってみます。

JNIのコンパイルが必要になりますが、
コンパイラによって、コードが若干異なってくるかもしれません。
私の手持ちのコンパイラはVC++6またはVC++.NET2003ですが
これのどちらかでよろしいですか?
gccとかC++ Builderとか言われると、ちょっと私にはできないんですが。
ヒロピン
常連さん
会議室デビュー日: 2003/12/14
投稿数: 35
投稿日時: 2005-12-06 23:22
VC++6でお願いします。

本当に感謝しております。

よろしくお願い致します。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-07 07:31
ヒロピンさん、おはようございます。

とりあえずサンプルコードを作成しました。

VB DLLのインターフェイス仕様や、やり取りするデータの内容が分かりませんでしたので
次のように仮定しています。

・DLLを使って他システムよりデータを取得するメソッド -> OtherSystem.GetData
・DLLを使って他システムへデータを送信するメソッド -> OtherSystem.SendData
・データの受け渡し方法 -> 文字列でカンマ区切りのデータ

では全コードを投下していきたいと思います。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-07 07:33
VB DLLのソースコードです。

コード:
'VbCom.OtherSystemクラス(OtherSystem.cls)

' 他システムからデータを取得する
Function GetData() As String
    ' ダミーのデータを返す
    GetData = "SHOHIN_CODE0001,りんご,¥100"
End Function

'  他システムへデータを送信する
Sub SendData(ByVal data As String)
    ' 送信データの内容をメッセージボックスに表示する
    MsgBox data, vbOKOnly, "データを送信しました"
End Sub


スキルアップ/キャリアアップ(JOB@IT)