为了账号安全,请及时绑定邮箱和手机立即绑定

java调用C#封装的DLL文件

java调用C#封装的DLL文件

拉丁的传说 2019-05-31 03:02:48
由于要和硬件打交道,公司里有同事把硬件接口用C#封装了一道。现在项目里要用java来开发,要用java调用这些C#封装的dll。不想用jni,我想直接用jna来处理。但是用jna,java无法直接调用C#封装的dll接口,我想用C++来再次封装C#的dll,然后java来调用C++再封装的dll。java调用C++封装的dll成功,但是不晓得怎么用C++再封装C#的dll并能让java调用。请求帮助!qq396921623注意是 C++再把C#封装的dll封装一次,留接口给java调用的,谢谢!例如,我 用C#封装了一个dll,其cs的主要内容如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CreatDll{public class TestA{public int add(int x,int y){int z = x + y;return z;}}}然后生成了一个CreatDll.dll,那么我在C++中再如何封装它,以便我java再调用c++封装的dll
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

1. 如果你愿意采用COM组件的方式,可以一试!JAVA有COM4Java的组件(我没记错的话)。
先将C#dll用COM Callerable Wrapper(CCW)封装一下,在C++中编写COM dll调用C#的托管dll,之后在Java中使用COM4J组件访问这个C++编写的COM dll组件!
如果不明白,使用Google或者Bing搜索下CCW和RCW。
2. webservice
估计你不会这样做的,也没必要
3. 重写下吧,用C++

 




查看完整回答
反对 回复 2019-06-01
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

C#的DLL都用的运行时,需要.net frame work 支持,想用C++封装,也同样需要使用运行时,这样做的还是脱离不了.net frame work ,而且这样形成 的dll能不能被java调用还是个未知数,不过你可以试试,用c++.net的语法进行封装。不过我感觉还是看下源代码自己用C++实现吧。



查看完整回答
反对 回复 2019-06-01
  • 3 回答
  • 0 关注
  • 313 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信