具有多个参数的 JNI 方法?
Posted
技术标签:
【中文标题】具有多个参数的 JNI 方法?【英文标题】:JNI methods with more than one argument? 【发布时间】:2012-07-19 09:06:49 【问题描述】:我是 JNI 的新手,我想将三个整数传递给下面的函数
void pauseEffectJNI(unsigned int nSoundId)
// void pauseEffect(int)
JniMethodInfo methodInfo;
if (! getStaticMethodInfo(methodInfo, "pauseEffect", "(I)V"))
return ;
methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID, (int)nSoundId);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
如有错误请指正
这行会发生什么 if (!getStaticMethodInfo(methodInfo, "pauseEffect", "(I)V"))
(I;I;I)V 或只是 (III)V
如果我的函数是 void pauseEffectJNI(unsigned int nSoundId, unsigned int number1, unsigned int number2) ??
基本上我想知道如果我想传递多个整数怎么办
感谢您的帮助...这是我制作的功能...如果我错了请纠正我
void pauseEffectJNI(unsigned int nSoundId , unsigned int number)
// void pauseEffect(int)
JniMethodInfo methodInfo;
if (! getStaticMethodInfo(methodInfo, "pauseEffect", "(III)V"))
return ;
methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID, (int)nSoundId,(int) number);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
【问题讨论】:
【参考方案1】:不要试图手动找出 JNI 方法签名,因为“javap -s”会以 100% 的可靠性告诉你正确的答案。使用工具。
【讨论】:
以上是关于具有多个参数的 JNI 方法?的主要内容,如果未能解决你的问题,请参考以下文章