`

jacob传送数组到com以及从com的提取com对修改后的数组参数

VB 
阅读更多
import com.jacob.com.*;
  import com.jacob.activeX.*;
  public class Exam_6
  {
   public static void main(String[] args)
   {
   ActiveXComponent pp = new ActiveXComponent("PrjCOM.MyCOM");
   try {
   SafeArray sa = new SafeArray(Variant.VariantString,2);
   Variant var = new Variant();
   sa.fromStringArray(new String[]{"H","H"});
   var.putSafeArrayRef(sa);//传递数组引用地址
   //如果只是传一个数组进去,而不需要取得改动后内容的话,可以用putSafeArray方法
   Dispatch.call(pp, "Test",var);
   String[] sack= sa.toStringArray();
   System.out.println(sack[0]+"\t"+sack[1]);
   } catch (Exception e) {
   e.printStackTrace();
   }
   }
  }

 

VB实现的Com对象如下

  VERSION 1.0 CLASS
  BEGIN
   MultiUse = -1 'True
   Persistable = 0 'NotPersistable
   DataBindingBehavior = 0 'vbNone
   DataSourceBehavior = 0 'vbNone
   MTSTransactionMode = 0 'NotAnMTSObject
  END
  Attribute VB_Name = "MyCOM"
  Attribute VB_GlobalNameSpace = False
  Attribute VB_Creatable = True
  Attribute VB_PredeclaredId = False
  Attribute VB_Exposed = True
  Public Sub Test(ByRef param() As String)
  ReDim param(2)
  param(0) = "Hello"
  param(1) = "World"
  End Sub

 

编译执行Exam_6.java
  打印 Hello World

分享到:
评论
1 楼 locker99 2011-08-18  
非常感谢楼主,看了楼主的文章解决了一个困扰我几天的问题。。。

相关推荐

    JAVA + JACOB调用c++COM组件

    在IT行业中,跨语言通信是一项常见的任务,尤其是在不同的...尽管涉及到JNI和对底层细节的理解,但通过JACOB库,这一过程变得相对简单和直观。在实际项目中,确保正确处理数据类型转换和资源管理,是成功调用的关键。

    com.jacob.jacob_1.10jar包下载.zip

    这个版本可能包含了一些性能优化、bug修复以及对新COM组件的支持。在使用这个版本之前,确保你的系统环境满足Jacob的运行需求,包括安装了对应的JDK和Windows平台支持。 使用Jacob时,你需要在项目中添加...

    com.jacob jar包

    `com.jacob` jar包是Java与COM(Component Object Model)之间交互的一个开源库,主要用于在Java应用程序中调用Windows的COM组件。这个库使得Java开发者可以方便地访问和操作那些仅提供COM接口的Windows应用或者...

    jacob1.18源码和jar包

    从而建立起java到jacob dll到jni的之间的联系 LSH 调用Microsoft MediaPlayer等 )">JACOB里的总共有两个包: com jacob activeX:JACOB可以通过它调度(Dispatch)activeX 控件 com jacob com:JACOB通过它...

    使用JACOB工具调用COM组件

    引入必要的JACOB库后,创建`Dispatch`对象,传入COM组件的ProgID(在本例中是"MathProj.Math"),然后通过`Dispatch.call`方法调用COM组件的方法,如`Add`和`Mult`,并将参数包装在`Variant`对象中传递。最后,打印...

    com.jacob:1.19.rar 下载

    下载并解压后,我们需要将Jacob的jar文件添加到项目的类路径中。如果是Maven项目,可以在pom.xml文件中添加如下依赖配置,但由于Jacob不在中央仓库,所以需要使用系统依赖(system scope)来指定本地路径: ```xml ...

    jacob配置以及使用说明

    在这个案例中,我们有名为`jacob_1.9.rar`的压缩文件,解压后会得到`jacob.jar`。将这个JAR文件添加到你的Java项目的类路径(classpath)中。如果你使用的是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml ...

    jacob1.9 jacob1.12 jacob1.14

    2. Jacob 1.12:随着版本的升级,Jacob 1.12可能包含了更多的功能和改进,比如对更多COM组件的支持,性能优化,以及更完善的错误处理和异常处理。这个版本可能是很多用户的选择,因为它在兼容性和稳定性方面有良好的...

    jacob-1.18的jar包以及.dll文件

    6. **使用Jacob**:在Java项目中使用Jacob时,需要将Jacob的.jar文件添加到项目的类路径中,并根据系统的架构选择合适的.dll文件放置在正确的位置,通常是系统的PATH环境变量所包含的目录下。然后,通过导入Jacob...

    jacob1.18源码+jar包

    从而建立起java到jacob dll到jni的之间的联系 LSH 调用Microsoft MediaPlayer等 )">JACOB里的总共有两个包: com jacob activeX:JACOB可以通过它调度(Dispatch)activeX 控件 com jacob com:JACOB通过它...

    jacob-1.18源码

    **Jacob-1.18源码解析** Jacob(Java-COM Bridge)是一个开源项目,它为Java应用程序提供了与Microsoft COM(Component Object Model)组件交互的能力。这个库使得开发者能够在Java程序中调用COM对象,执行那些只能...

    最新版jacob 1.20.jar jacob-1.20-x64.dll jacob-1.20-x86.dll

    这个压缩包包含了Jacob的最新版本,即1.20版,包括两个动态链接库(DLL)文件:`jacob-1.20-x64.dll`和`jacob-1.20-x86.dll`,以及Java类库`jacob-1.20.jar`。这些文件分别用于64位和32位的Windows系统,确保了在...

    jacob-1.18-M2(含Jacob.jar包以及Jacob.dll文件 说明文档API等)

    Jacob,全称Java COM Bridge,是一个Java到COM的桥梁,允许Java程序调用Windows平台上的COM组件。这个项目,"jacob-1.18-M2",包含了Jacob的核心库——Jacob.jar,以及对应的Jacob.dll文件,这在Java程序与COM组件...

    jacob-1.18-M2(含Jacob.jar包以及Jacob.dll文件 说明文档API等)集合

    Jacob,全称Java COM Bridge,是一个Java到COM(Component Object Model)桥接库,使得Java开发者可以使用COM组件,调用Windows系统中的ActiveX控件和各种自动化接口。这个"jacob-1.18-M2"集合包含了Jacob项目的最新...

    jacob.jar及jacob-1.20-x64.dll文件

    例如,如果你想从Java代码中操作Excel,你可以使用Jacob的`ActiveXComponent`类来创建一个Excel实例,然后调用它的方法来打开、编辑或创建工作簿。 **jacob-1.20-x64.dll文件** jacob-1.20-x64.dll是Jacob的 ...

    jacob.jar全包下载

    Jacob库(Java COM Bridge)是一个开源项目,它提供了一个Java到COM桥接,允许Java程序调用Windows上的COM组件,实现Java和COM对象之间的无缝通信。 【描述】中的"jacob-1.14.3-x64.dll"和"jacob-1.14.3-x86.dll"是...

    JACOB各版本下载

    2. **配置环境**: 解压后,将JACOB的jar文件添加到Java项目的类路径中。同时,由于JACOB依赖于DLL(动态链接库),还需要将对应的dll文件放入系统的PATH环境变量中,以便Java程序可以找到并使用它们。 3. **编写...

    jacob(jacob.dll,jacob.jar)

    `jacob.jar`则是一个Java类库,包含了Java对COM接口调用的抽象和实现。它提供了许多接口和类,使得开发者能够在Java代码中轻松创建和操作COM对象。例如,你可以使用Jacob来操作Excel、Word等Office应用程序,或者与...

    jacob各个版本好用

    Java中的Jacob库是一个非常有用的工具,它允许Java应用程序与Windows API进行交互,从而实现许多原本在Java中难以实现的功能,比如自动化Office文档处理、打印、COM组件交互等。标题提到"jacob各个版本好用",这暗示...

Global site tag (gtag.js) - Google Analytics