本文目录一览:
- 1、java用jna调用C语言dll接口中的回调函数怎么写
- 2、win 7 64位系统,java jna调用dll,传入参数不正确
- 3、如何用java的jna模拟键盘按键
- 4、java jni 和jna的区别
- 5、java(jna)关联dll对硬件进行操作,传String参数出错
java用jna调用C语言dll接口中的回调函数怎么写
简单的你会写,那就好办,直接上代码
public interface TestAPI extends StdCallLibrary {
interface LoginReply extends StdCallCallback {
/**
* 登录回调
*/
void invoke(String userId, long retCode, String retMsg);
}
/**
* 注册一个登录回调方法.此方法是dll提供的
*/
void RegisterLoginReply(LoginReply loginReply);
}
/**
* 实现登录回调方法
*/
private class LoginReplyCallBack implements TestAPI.LoginReply {
@Override
public void invoke(String userId, long retCode, String retMsg) {
log.info(“登录回调方法:{},{},{}”, userId, retCode, retMsg);
}
}
// 设置登录回调
api.RegisterLoginReply(loginReplyCallBack);
win 7 64位系统,java jna调用dll,传入参数不正确
jdk+jre=完整java。出现问题的原因:1、jdk、jre安装不对,环境变量配置不对应。检查方法:在cmd下输入java-version命令查看是否有版本信息出现。解决方法:根据安装教程重新安装。(注意配置环境变量后需要重启电脑才生效!我就是因为没有重启。。。)2、我的64位电脑在配置java时也出现过这种情况,只有javac命令不出现对应信息,各种配置也正确。最后我的解决法是在360软件中心下载jre安装。
如何用java的jna模拟键盘按键
这个比较简单的,用 java.awt.Robot 来实现就行了。
Robot 对象有几个个方法就是操作键盘的:
void keyPress(int kc);
void keyRelease(int kc);
//例子
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class RobotTest {
private static Robot rbt;
static{
try {
rbt=new Robot();
} catch (AWTException e) {e.printStackTrace();}
}
//按下
static void press(int kc){rbt.keyPress(kc);}
//释放
static void release(int kc){rbt.keyRelease(kc);}
static void type(int kc){press(kc);release(kc);}
public static void main(String[] args) {
//F7 长按
//press(KeyEvent.VK_F7);
//F7按一下
type(KeyEvent.VK_F7);
//…
}
}
java jni 和jna的区别
JNA是基于JNI的,是在JNI上封装了一层,JNI性能不如JNA。
JNI和JNA调用的不是同一个dll,但是功能和代码基本相同。
java(jna)关联dll对硬件进行操作,传String参数出错
很多语言中,并没有String类型,理论上应该确认下,其动态库用什么语法开发的,这个情况下,你不妨试试字节,字符及数组, dll多数是vb,c系列
原创文章,作者:K20L1,如若转载,请注明出处:https://www.506064.com/n/128297.html