jna编程注意事项
jna的初始化,注意跨平台
根据目录,把动态库(.dll/.so)文件按照不同操作系统,不同操作系统版本位数,放到不同的目录下。
- 使用
Platform.isWindows()
区分操作系统。 - 获取classes运行路径:
Thread.currentThread().getContextClassLoader()
.getResource("").getPath().substring(1).replace("%20", " ") - 获取操作系统位数:
Integer.parseInt(System.getProperty("sun.arch.data.model"))
jna回调函数调用
- 回调函数需要继承 com.sun.jna.Callback
- 然后实现invoke函数, 回调函数真实调用的是这个函数