亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問我該如何通過JNI在Java中調用C庫函數?

請問我該如何通過JNI在Java中調用C庫函數?

牧羊人nacy 2019-07-02 10:06:31
如何通過JNI在Java中調用C庫函數
查看完整描述

5 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

調用格式如下:

[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll為C++DLL名,method為函數名, 這里的int a為C++中方法的參數轉換。
例:C++DLL名:Interface.dll,函數為voidCopMemFree(void *vp);
調用格式為:

[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);

其實C#調用C++dll主要就是C++與C#的參數轉換比較困難。



查看完整回答
反對 回復 2019-07-06
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

main函數中調用其中定義的變量,直接調用就可以了。
public class Test{
public static void main(String[] args){
int data = 15; //定義的局部變量。
mathod_a(data); //在靜態方法中調用,你遇到的問題應該是這個吧。這里的方法必須是靜態的。
B b = new B();
b.method_b(data);//定義一個對象,在對象的方法中調用。
}
public static void method_a(int num){
System.out.println("method_a調用main中的變量");
}
}
class B{
method_b(int num){
System.out.println("method_b調用main中的變量");
}
}


查看完整回答
反對 回復 2019-07-06
  • 5 回答
  • 0 關注
  • 1140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號