Java调用动态链接库通用方法.doc
文本预览下载声明
Java调用动态链接库(*.DLL)
*.dll文件用一般使用何种语言何种软件编写?
*.dll文件一般用 VC++、Delphi、C#等开发工具编写如果要考虑广泛的兼容VC++或者C语言编写,可VC、Delphi、PB、VB、C#等语言调用Java如何调用C语言已经编写的DLL?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 LED_Report_GetOnlineItemName(int serverindex, int itemindex);Library是LEDSender2014.dll文件中的功能函数
2D:\\LEDSender2014是绝对路径,也可以是相当路径。如果把LEDSender2014.dll文件放到Java项目目录下,当前路径可以写为LEDSender2014
3java和C语言的数据类型的对应关系:unsigned char 用charunsigned int 用intunsigned 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建立连接
显示全部