本文目錄一覽:
- 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/zh-hk/n/128297.html