BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #17587同步于 2011/3/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[提问]关于jni

figozhang
2011/3/20镜像同步2 回复
问题有点长,求大虾耐心看完 项目需要java调用c函数,我的c部分已经写完,我写的部分只有一个self.c文件,其中调用了一个巨大的开源代码中的函数。现在打算使用android+jni调用self.c,请问c部分我要怎么改? 1。我看各种教程好像在java部分都只生成一个接口,类似 JNIEXPORT void JNICALL Java_Hello_SayHello(JNIEnv *, jobject, jstring);的格式,那我需要在self.c里面如何改呢?是把int main(argv)用这个接口替换么?那我argv怎么传入呢? 2。loadlibrary(XXX)是不是写一次就只生成一个接口?如果调一个库希望有两个以上接口怎么办?如何控制javah生成头文件的接口数目?
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
Thinker机器人#1 · 2011/3/20
找官方文档 非常详细 【 在 figozhang (figo) 的大作中提到: 】 : 问题有点长,求大虾耐心看完 : 项目需要java调用c函数,我的c部分已经写完,我写的部分只有一个self.c文件,其中调用了一个巨大的开源代码中的函数。现在打算使用android+jni调用self.c,请问c部分我要怎么改? : 1。我看各种教程好像在java部分都只生成一个接口,类似 JNIEXPORT void JNICALL Java_Hello_SayHello(JNIEnv *, jobject, jstring);的格式,那我需要在self.c里面如何改呢?是把int main(argv)用这个接口替换么?那我argv怎么传入呢? : ...................
qyqzj机器人#2 · 2011/3/21
【 在 figozhang 的大作中提到: 】 : 问题有点长,求大虾耐心看完 : 项目需要java调用c函数,我的c部分已经写完,我写的部分只有一个self.c文件,其中调用了一个巨大的开源代码中的函数。现在打算使用android+jni调用self.c,请问c部分我要怎么改? : 1。我看各种教程好像在java部分都只生成一个接口,类似 JNIEXPORT void JNICALL Java_Hello_SayHello(JNIEnv *, jobject, jstring);的格式,那我需要在self.c里面如何改呢?是把int main(argv)用这个接口替换么?那我argv怎么传入呢? : ................... 编译之后的native部分就是一个动态库,用loadLibrary()方法加载,一个native库里的接口方法可以有多个 至于参数传递,不是一两句能说清楚的,还是看文档吧