利用jna调用使用C#的dll文件

本文介绍了如何在Java项目中利用JNA调用C#生成的DLL文件。由于直接调用C# DLL存在困难,作者采取了先用C++封装C# DLL,然后通过JNA调用封装后的C++ DLL的方法。详细步骤包括创建C#类库项目,设置COM可见性,添加客户DLL引用,生成C# DLL,接着创建C++项目,引入C# DLL,编写C++代码进行封装,最后在Java中使用JNA调用新生成的C++ DLL。注意,C# DLL需要放在JDK的bin目录下以避免加载错误。
摘要由CSDN通过智能技术生成

目前所做java项目中有部分模块需要使用客户提供的dll动态库文件中封装的算法,客户提供了一个dll文件以及C#语言编写的可执行文件实例,算法具体代码未提供。之前只涉及过利用jna调用c++所生成的dll文件,最终的目的则是需要java调用C#生成的dll文件。

       本人涉及dll的封装操作不是很久,暂时未能找到java利用jna调用C#生成的dll的更有效方法,于是采用一种变通的方法。

       这种方法的思路是:c++项目设置为clr公共运行时,可以通过引用的方法调用C#相应方法,java可以通过jna调用c++生成的dll,所以首先需要将C#的dll封装成c++的dll,再通过jna调用封装好的c++的dll文件。

工具:vs2010

首先,生成C#的dll文件。

客户给的dll文件是直接由C#生成的,如果熟悉这dll文件的内部结构则可直接略过此步骤。因为客户给的dll命名空间不够明确,并且其中有两个相似的类,而每个类下又有功能相同且名称相同的几个方法,为了能够明确调用给定的C#的dll动态库文件中的方法,同时为了c++调用方便,这里是

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值