拜读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; 
}  
 
  |