java .net dll_请教一个java 调用.net dll的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

一个java的项目中遇到一个问题。必须使用第三方提供的一个.net 写的dll。 解决的思路是用C#写一个com,实现好功能后给java调用,java通过jacob来调用com。

写了一个测试的COM,用vbs调用成功。通过jacob调用时提示

com.jacob.com.ComFailException: A COM exception has been encountered:

At Invoke of: GetEncrypt

Description: 不支持此接口

at com.jacob.com.Dispatch.invokev(Native Method)

at com.jacob.com.Dispatch.invokev(Dispatch.java:858)

at com.jacob.com.Dispatch.callN(Dispatch.java:455)

at com.jacob.com.Dispatch.call(Dispatch.java:544)

at test.main(test.java:20)

不知道是我的COM写的有问题,还是jacob 本身就不支持调用.net做的COM? 还望高手指点。

-----------------C# COM 代码------------------------

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;

namespace TestCom

{

[Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")]

public interface IEncrypt

{

[DispId(1)]

string GetEncrypt(string str);

}

[Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"), ClassInterface(ClassInterfaceType.None)]

public class Encrypt:IEncrypt

{

public Encrypt(){}

public string GetEncrypt(string str)

{

return "测试 | "+str;

}

}

}

-------------------java 调用-------------------

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.ComThread;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

public class test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

ActiveXComponent dotnetCom = null;

Dispatch wordDoc = null;

dotnetCom = new ActiveXComponent("TestCom.Encrypt");

Dispatch.call(dotnetCom,"GetEncrypt",new Object[] { "我们在测试" });

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

-----------vbs 调用成功---------------

Dim obj

Set obj = CreateObject("TestCom.Encrypt")

MsgBox obj.GetEncrypt("aaa")

---------------------------------------

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁匠qwer

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值