gpt4 book ai didi

java - 需要更改现有c函数的原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 20:41:29 25 4
gpt4 key购买 nike

我需要通过 JNI 从我的 Java 代码调用现有的 C 函数。根据 JNI 的建议,我使用 Javah 工具为 native C 函数创建了一个头文件,然后将其包含在 C 文件中。

我需要更改现有 C 函数的函数原型(prototype)(在头文件中生成)吗?

如果我的示例代码有任何错误,请纠正我

示例代码:

         #include <stdio.h>
#include <jni.h>
#include "myHeader.h"
int main(){
int result=Nativecall();
return 0;
}
int NativeCall(){ //Native Method implementation
int sample=10;
return sample;
}
_______________
myHeader.h

JNIEXPORT jint JNICALL Java_test__NativeCall
(JNIEnv *, jobject);

最佳答案

不,你不必做任何事情,javah 会为你完成这项工作,只需将头文件包含在你的 C 文件中并实现头文件中定义的函数即可。所以根据你的情况应该是这样的,你可以看到我们使用的原型(prototype)与javah在头文件中定义的原型(prototype)相同

JNIEXPORT jint JNICALL
Java_test__NativeCall
(JNIEnv *env,
jobject callingObject)
{
int sample=10;
return (jint)sample;
}

关于java - 需要更改现有c函数的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com