Java 通過JNative呼叫已經編寫好的DLL

2021-07-11 04:21:07 字數 791 閱讀 7103

將jnative.jar 匯入專案,將jnativecpp.dll拷貝至系統的system32下,將要呼叫的自己的dll檔案也放到系統的system32下

新建類 ,在方法中加入以下一段**

​    ​    ​    ​//  system.loadlibrary("acpuvisitor");  //系統載入已經放在system32下的dll

jnative jnative=new jnative("acpuvisitor","getsamlastsw"); // 通過jnative 來載入名為acpuvisitor的dll中的getsamlastsw方法

jnative.setretval(type.int); //設定getsamlastsw方法的返回值型別

int i=0;

//賦予引數值

jnative.setparameter(i++, type.int,"1"); // 設定getsamlastsw方法的引數   setparameter()方法的第乙個引數表示設定的是getsamlastsw()方法的第幾個引數,(引數下標從0開始);第二個引數表示傳遞的引數的型別;第三個引數表示引數的值 ​

jnative.setparameter(i++, type.string,"sa");

jnative.setparameter(i++, type.int,"1");

//函式執行

jnative.invoke();

//列印函式返回值

system.out.println(integer.parseint(jnative.getretval()));

java通過反射呼叫方法

業務中有個場景是這樣的,根據傳入不同的值生成不同的訊息體。這個時候如果用switch或ifelse的話那每一層 都很多,而且不利於維護。於是想到乙個方法,根據傳入的引數呼叫不同的方法 引數即方法 這樣便於維護也利於 的健壯性。如下 示例 先獲取方法,type方法名,this.getclass 引數型...

通過CreateProcess呼叫exe或cmd

include include intmain intargc,char argv process informationpi si.dwflags startf useshowwindow 指定wshowwindow成員有效 si.wshowwindow true 此成員設為true的話則顯示新建...

通過httpclient呼叫webservice

在net平台,通過restcharp無法呼叫webservice,並報錯 說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.invalidoperationexception 因 url 意外地以 h...