为了账号安全,请及时绑定邮箱和手机立即绑定

请问我该如何通过JNI在Java中调用C库函数?

请问我该如何通过JNI在Java中调用C库函数?

哆啦的时光机 2019-08-22 13:12:20
如何通过JNI在Java中调用C库函数
查看完整描述

5 回答

?
达令说

TA贡献1821条经验 获得超6个赞

调用格式如下:

[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-08-23
?
慕慕森

TA贡献1856条经验 获得超17个赞

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-08-23
  • 5 回答
  • 0 关注
  • 326 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号