① JNA调用DLL 、java /C
jna jnative 都可以实现 调用DLL函数 传入指针参数即可 自己研究下 很简单
② 请教有关java调用dll获取信息,用jna
以下为dll里面的函数
#ifndef _SENSE_RFID_PUBLIC_H
#define _SENSE_RFID_PUBLIC_H
#include "ResponseStatus.h" // API返回状态
//MACRO definition
typedef unsigned short USHORT;
enum CONN_TYPE
{
connNet = 0,
connSerial = 1,
};
typedef struct _CONNECT_HANDLE
{
CONN_TYPE conType;
HANDLE conHandle;
}HCONN;
/***********************************************************************************
函数名: rfid_Open
功能描述: 连接读写器(通过网络或串口)
输入参数:
使用网络:
connType = connNet
addr: 读写器IP地址, ex)."192.168.1.178"
port: 读写器连接端口号(默认使用4001)
使用串口:
connType = connSerial
addr: 连接读写器使用的串口, ex)."COM1",…,"COM9","\\\\.\\COM10","\\\\.\\COM11",
port: 连接读写器使用的波特率(默认使用115200)
输出参数:
hCon: 连接句柄
返回值: 0x00 表示成功,其它状态码参考API使用说明的状态码表
***********************************************************************************/
USHORT WINAPI rfid_Open(HCONN &hCon, CONN_TYPE connType, char *addr, DWORD port);
/***********************************************************************************
函数名: rfid_Close
功能描述: 断开连接
输入参数:
hCon: 连接句柄(详情请见rfid_Open函数)
输出参数: 无
返回值: 0x00 表示成功,其它状态码参考API使用说明的状态码表
***********************************************************************************/
USHORT WINAPI rfid_Close(HCONN hCon);
③ win 7 64位系统,java jna调用dll,传入参数不正确
jdk+jre=完整java。出现问题的原因:1、jdk、jre安装不对,环境变量配置不对应。检查方法:在cmd下输入java-version命令查看是否有版本信息出现。解决方法:根据安装教程重新安装。(注意配置环境变量后需要重启电脑才生效!我就是因为没有重启。。。)2、我的64位电脑在配置java时也出现过这种情况,只有javac命令不出现对应信息,各种配置也正确。最后我的解决法是在360软件中心下载jre安装。
④ Java JNA调用dll问题
在eclipse中直接选择项目,把dll文件粘进去,或者可以放在classpath下面,我调用的so文件是放在这个下面的,给spring的配置文件在一个地方,希望可以帮到你
⑤ java jna调用SiInterface.dll
这个是有可能的。不是因为你程序没有退出。你要找到SiInterface.dll的规范文档。它里面应该有详细说明怎么调用,退出。
如果猜的没有错,这个动态库加载到内存后,会停留在内存里(这是windows的习惯),同时它保留了上一次使用的记录。比如某些全局的静态变量或者是共享内存。或者是它打开了某些加密用的动态的接口并没有关闭。如果你没有主动让它释放这些资源。下一次调用可能就会出错。
一个进程打开一个动态库后一直占用它是没有道理的。除非动态库自己有安全机制,同一时间只能被一个进程调用。
所以你还是仔细阅读SiInterface.dll的设计文档。或者是看一下源代码。
⑥ java通过jna调用DLL里面的函数得到的中文乱码怎么解决
这样是不行的啊,你的问题出在C语言端,java统一是utf-8编码,而C语言不是,你这些写写个常量,编译为dll,java调用肯定错的。
你得在c里面返回unnicode码,方法:
用jdk工具,在jdk——home/bin下面有native2ascii.exe这个是转码用的工具
双击打开,
输入 北京
得到unicode码 \u00b1\u00b1\u00be\u00a9
应该 reutrn "\u00b1\u00b1\u00be\u00a9"; java再unicode编码处理即可
⑦ java 用JNA调用DLL异常
网页链接建议去看一下,要么是ddl里面方法或者参数有问题。
⑧ java 调用动态链接库(jni方式调用dll文件)
jni 是由Java调用C/C++的动态链接库 (DLL)。
所以把.class-->.h-->dll ,想法是不正确的,
同时也违背了Jni的初衷。
Dll是由C/C++生成的。
以前的一个项目用到了Java调用C/C++的DLL,所以对这个还算熟悉。
那个dLL是由C++程序员写的,在Microsoft Visual C++ 6.0编辑器中可以生成。然后由Java程序员用JNI来调用DLL里面实现的功能(方法)。
⑨ 现在有一个用C++写好了类库,如何用Java调用这个DLL文件中的类,我实现了用JNA调用DLL中的函数的功能
可用先用c++调用dll中的类。再用jna转给java用。 这是我的。。。。
网上的:http://tvjody.iteye.com/blog/125643
⑩ java使用jna调用dll造成JVM奔溃,有什么解决办法
楼主,这个问题,最好是先调试好DLL。。。。。。。,或者尽量使用文件写一些LOG