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

请问我该如何通过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 关注
  • 1019 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信