您的当前位置:首页Java调用动态链接库通用方法

Java调用动态链接库通用方法

来源:小侦探旅游网
Java调用动态链接库(*.DLL)

1. *.dll文件用一般使用何种语言何种软件编写?

*.dll文件一般用 C语言、VC++、Delphi、C#等语言和相应的开发工具编写。如果要考虑广泛的兼容,一般使用VC++或者C语言编写,可供java、VC、Delphi、PB、VB、C#等语言调用

2. Java如何调用C语言已经编写的DLL?以D盘下的LEDSender2014.dll文件为例

第一步:定义一个接口,继承DLL的功能类

public interface VsLedDriver extends Library

{

VsLedDriver INSTANCE = (VsLedDriver) Native.loadLibrary(\"D:\\\\LEDSender2014\",VsLedDriver.class);

//以下为接口VsLedDriver继承来自Library的各种方法

//态链接库初始化

void LED_Startup();

//填写网络通讯参数,供发送时使用

int LED_UDP_SenderParam_ByReportName(int index, int localport, String remoteIP);

//获得某个在线控制卡的上报控制卡名称

String LED_Report_GetOnlineItemName(int serverindex, int itemindex);

}

其中,<1>Library是LEDSender2014.dll文件中的功能函数

<2>\"D:\\\\LEDSender2014\"是绝对路径,也可以是相当路径。如果把LEDSender2014.dll文件放到Java项目目录下,当前路径可以写为\"LEDSender2014\"

<3>java和C语言的数据类型的对应关系:unsigned char 用char;unsigned int 用int;unsigned char*、和unsigned int* 这两个是指针,第一个是取1位地址内容的,第二个根据系统而定,一般是取4位地址值的,用java 的String对应

第二步:在其他类中直接调用接口中的方法

public class LEDSendServer

{

public synchronized void send(String title,String ledIP,String path,int localport)

{

VsLedDriver.INSTANCE.LED_Startup();//动态链接库初始化,单独启动或者做成EXE 需要开启此方法

int s = VsLedDriver.INSTANCE.LED_UDP_SenderParam(0, localport, ledIP);//加载LED驱动,并与LED建立连接

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容