再探弥补java与com的间隙

类别:Java 点击:0 评论:0 推荐:

 

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

项目需求:

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

我所采取的策略是:

1、如何传入数据。              

从文件中读取数据,如果在java中来完成的话,还要完成从java到com的数据传递,所以我索性在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;

}

本文地址:http://com.8s8s.com/it/it16932.htm