2

com4j ライブラリを介して Java からいくつかの COM メソッドを呼び出そうとしています。私がアクセスできるドキュメントでは、COM メソッドのシグネチャは次のとおりです。

HRESULT method1 ([in] VARIANT (SafeArray UI1) vInBuf, 
                [out] VARIANT (SafeArray UI1) *pvOutBuf,
                [out, retval] long *plResult)

そのメソッドにバイト配列を渡し、そこからバイト配列を取得したいと考えています。Com4J によって生成されたインターフェイスは次のように表示されます。

@DISPID(2) 
@VTID(8)
int method1 (
  @MarshalAs(NativeType.VARIANT) java.lang.Object vSendData,
  java.lang.Object pvReceiveData);

ただし、どの形式で送信すればよいかわかりません。

byte[] req = new byte[]{1,2,3,4};
byte[] res = new byte[512];
method1(req,res); 

動作しないようです。それらをオブジェクトなどとして宣言することもありません。私は com4j.SafeArray ( http://com4j.kohsuke.org/apidocs/com4j/SafeArray.html ) を調べましたが、どのように配列を配置すればよいのかよくわかりません。

他の誰かが com4j ライブラリを使用して、バイト配列を送受信する方法を見つけたことがありますか?

4

0 に答える 0