Java调用dll中函数dll文件对方已提供

函数1:functionUDP_SetDoorAccountInfoStrSingle(addr:TEquip_Addr;AccountAre:BYTEIndex:WOR... 函数1: function UDP_SetDoorAccountInfoStrSingle (addr:TEquip_Addr; AccountAre:BYTE Index:WORD;Door_Account:Pchar
函数2:
function UDP_SetCardPower(var addr:TEquip_addr; CardNo: integer;DoorNo: BYTE; stateflag: BYTE):
函数3:
function UDP_ReadDoorRecordStr(addr:TEquip_Addr;var datarecord::pchar ):
展开
 我来答
zh857872
推荐于2016-09-30 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:304万
展开全部
先定义接口,接口中的方法与dll中的对应,然后加载dll文件,接着对应调用其中的方法即可。
例子:
加载dll如下(假设你的dll放在F盘dll目录下,名称为:abc.dll):
则:IDllInterfaces INSTANCE = (IDllInterfaces)Native.loadLibrary("F:\\dll\\abc", IDllInterfaces.class);
接着调用方法:
INSTANCE.UDP_SetDoorAccountInfoStrSingle(...);

有问题欢迎提问,满意请采纳,THX!
更多追问追答
追问
我的调用dll时报错“Unable to load library”这个要怎么解决?是不是要用C制作一个dll去调用这个dll文件啊。能不能给个具体的实例!
追答
要认真阅读我上面的文字,只要对方给你提供了dll文件及api接口说明,跟C没有半毛钱关系。
例子:
public interface IDllInterfaces extends StdCallLibrary
{
public static final IDllInterfaces INSTANCE = (IDllInterfaces)Native.loadLibrary("F:\\dll\\abc", IDllInterfaces.class);
public abstract int UDP_SetDoorAccountInfoStrSingle(int paramInt, long paramLong);
public abstract int UDP_SetCardPower(int paramInt1, int paramInt2);
public abstract int UDP_ReadDoorRecordStr(int paramInt);
}

注:参数及返回值类型请根据实际接口及Jna编程规范修改。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式