Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
再探弥补java与com的间隙

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

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

}




相关文章

相关软件