我是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)??
基本上我想知道如果我想传递多个Integer
感谢您的帮助...这是我做的功能......如果我错了,请纠正我
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);
}
答案 0 :(得分:1)
当'javap -s'以100%的可靠性告诉你正确答案时,不要试图手工弄清楚JNI方法签名。使用工具。