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

如何通过JNI在Java中调用C库函数


梦里花落0921
浏览 387回答 5
5回答

杨__羊羊

调用格式如下:[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#的参数转换比较困难。

拉丁的传说

在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中的变量");}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java