Java学习:再探弥补java与com的间隙

发表于:2007-05-25来源:作者:点击数: 标签:java再探间隙弥补COM
拜读zlyperson的轻松架起 Java 连接COM对象的桥梁后,受益匪浅,这里我想在zlyperson的基础上补充我在做一个项目中的一个运用方法。 项目 需求 : 从文件中读取数据,调用组件的算法来完成计算,将最终结果返回给 java 程序再实现结果的进一步运算和显示。

  拜读zlyperson的轻松架起Java连接COM对象的桥梁后,受益匪浅,这里我想在zlyperson的基础上补充我在做一个项目中的一个运用方法。
  
  项目需求
  
  从文件中读取数据,调用组件的算法来完成计算,将最终结果返回给java程序再实现结果的进一步运算和显示。
  
  我所采取的策略是:
  
  1、从文件中读取数据,如果在java中来完成的话,还要完成从java到com的数据传递,所以我索性在com中来完成,从java中传入一个文件的路径就行了。
  
  ActiveXComponentActiveXCom=newActiveXComponent("ComponentName.Someclass");
  
  Dispatch.put(ActiveXCom,"FilePath",newVariant("E:\\数据"));
  
  2、如何得到返还结果
  
  publicString[]GetFinalResult()
  
  {
  
  Varianttemp_var;
  
  temp_var=Dispatch.get(ActiveXCom,"FinalResults");
  
  /*------------------------------------------------*/
  
  //整个思路与MFC类似,先是转成SafeArray,然后得到其大小内容
  
  /*------------------------------------------------*/
  
  SafeArrayia=temp_var.toSafeArray();
  
  inttemp_lLowerBound=ia.getLBound();
  
  inttemp_lUpperBound=ia.getUBound();
  
  inttemp_lOptionalResultsNum=temp_lUpperBound-temp_lLowerBound+1;
  
  Stringtemp_sString[]=newString[temp_lOptionalResultsNum];
  
  for(inti=0;i<lOptionalResultsNum;i++)
  
  {
  
  temp_sString[i]=ia.getString(i);
  
  System.out.println(temp_sString[i]);
  
  }
  
  returntemp_sString;
  
  }
      





  



原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)