JACOB调用COM使用心得

J在最近的一个项目中,客户要求我们用JAVA做一个接口,这个接口要调用另外一方提供的一个OCX控件。

最初就想到就JAVA 的JNI技术,可是在网上看了下,感觉有点麻烦,因为那样做的话,你要先自己在JAVA中定义好所有的方法接口,生成对应的.h文件,然后再用这个.h文件用C/C++中调用这个OCX,这样才能实现。

好在柳暗花明又一村啊,看到了JACOB这个开源项目,可是在网上例子很少,而DOC也没有,简直是看得我一头雾水。在我潜心的搜索下,然后再研究了一番,终于达到了需要的 目的。下面把自己的心得与大家分享。

1。 首先,下载JACOB这个文件,可以到http://sourceforge.net上面去下载。

2。打开文件,可以看见里面有2个重要的文件,一个是jacob.dll 另一个是jacob.jar文件,此时要注意了,我们的文件的放置位置特别重要。DLL文件直接放到SYSTEM32下就行了;我开发的时候是用的是JB,所以不需要设置JAR文件到CLASSPATH,直接在工程中引用就行了。

3.你首先要保证你的COM组件被注册了,可以去注册表查查ID。

3。上正题了 ,来点具体的 例子。

     首先,我有一个.OCX后缀的COM组件,其中有很多方法和属性。

    METHOD:  LOGIN(), VERSION();

    PAPAMETERS:userid, psw,url;

   下面是我的部分 java代码:

 import com.jacob.com.*;
import com.jacob.activeX.*;

public class testJACOB

{

   ActiveXComponent comx=new ActiveXComponent("myCom.com"); //myCom.com是在注册表中的组件名

 Dispatch.call((Dispatch)comx,"VERSION");  //就是调用VERSION方法。

Dispatch.put((Dispatch)comx,"userid","MY"); //把“MY”付给userid属性。

Dispatch.put((Dispatch)comx,"psw","123"); //把“123”付给psw属性。

......

}

 

看吧,就这么简单。当然还有很多方法,大家可以去参详,有什么问题可以起一来讨论。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值