再探弥补java与com的间隙

 

拜读zlyperson的轻松架起Java连接COM对象的桥梁后,受益匪浅,这里我想在zlyperson的基础上补充我在做一个项目中的一个运用方法。

项目需求:

从文件中读取数据,调用组件的算法来完成计算,将最终结果返回给java程序再实现结果的进一步运算和显示。

我所采取的策略是:

1、如何传入数据。              

从文件中读取数据,如果在java中来完成的话,还要完成从javacom的数据传递,所以我索性在com中来完成,从java中传入一个文件的路径就行了。

ActiveXComponent ActiveXCom = new ActiveXComponent("ComponentName. Someclass");

Dispatch.put(ActiveXCom, "FilePath", new Variant("E://数据"));

2、如何得到返还结果。

public String[] GetFinalResult()

{

     Variant temp_var;

     temp_var = Dispatch.get(ActiveXCom,    "FinalResults");

     /*------------------------------------------------*/

     //整个思路与MFC类似,先是转成SafeArray,然后得到其大小内容

     /*------------------------------------------------*/

     SafeArray ia = temp_var.toSafeArray();

     int temp_lLowerBound = ia.getLBound();

     int temp_lUpperBound = ia.getUBound();

     int temp_lOptionalResultsNum = temp_lUpperBound - temp_lLowerBound + 1;

     String temp_sString[] = new String[temp_lOptionalResultsNum];

     for (int i = 0; i < lOptionalResultsNum; i++)

     {     

       temp_sString[i] = ia.getString(i);

       System.out.println(temp_sString[i]);

     }

return temp_sString;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值