java怎么通过JNI来调用C/C++层面的东西呢

原问题:java怎么通过JNI来调用C/C++层面的东西呢
分类:编程开发 > 最后更新时间:【2016-12-23 17:03:14】

最佳答案

首先你要将C/C++的程序按JNI的格式,编译成dll

然后java就可以调用此dll,并调用C的函数或变量了

这个部分相对复杂,你必须的JAVA及C/C++的相当基础

如C的函数定义

JNIEXPORT jint JNICALL Java_test_ctest(JNIEnv *env, jclass cl)
{
printf("Now I'm in C++\n");
return (jint)100;
}

JAVA的程序为

static {
System.loadLibrary("dlltest");
}
public native static int ctest();

....

System.out.println("I'm in java");
int i=ctest(); //JAVA从DLL中调用C的ctest函数,并得到返回值100
System.out.println("I get a return of int:"+i);

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
1

分享到:

其他回答

暂无其它回答!

    推荐