首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

JACOB对于组件函数输出参数的处理

2013-01-08 
【求助】JACOB对于组件函数输出参数的处理本帖最后由 sxww321 于 2010-10-21 10:04:05 编辑现在项目中有一个

【求助】JACOB对于组件函数输出参数的处理
本帖最后由 sxww321 于 2010-10-21 10:04:05 编辑 现在项目中有一个需求,客户给了一个组件exe形式的服务组件,里面有一个函数,该函数有两个输入参数,1个输出参数,1个返回值,函数原型如下:


HRESULT Encrpt([in] SAFEARRAY(byte)* pDataIn,
[Out] SAFEARRAY(byte)* pDataOut,
[in] VARINT_BOOL IsLastBlock,
[out,retval] OperationResultEnum* pRetVal);


我现在想要通过JACOB调用该函数,JAVA代码如下:


//获取SFEL组件
ActiveXComponent sfel = new ActiveXComponent("SFEL.FileEncryptor");
String s1="123";//传入参数
String s2="321";//传出参数
int oper_state = Dispatch.call(sfel,"Encrypt",s1,s2).getInt();//取得返回值


s1传入函数后会进行加密,加密后的内容由S2传出,但是JAVA中是值传递,现在获取不到s2的有效值。
[解决办法]
int oper_state = Dispatch.call(sfel,"Encrypt",s1,s2).getInt();//取得返回值

int oper_state 是call的返回值,是不是有一个A** 可变对象的
[解决办法]
Variant var = Dispatch.call(sfel,"Encrypt",s1,s2).getInt();//取得返回值
var.getInt();

这样行吗?
弄过一次忘了记下来,唉

热点排行