有多个参数的JNI方法?

时间:2012-07-19 09:06:49

标签: java-native-interface jniwrapper jnienv

我是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);
        }

1 个答案:

答案 0 :(得分:1)

当'javap -s'以100%的可靠性告诉你正确答案时,不要试图手工弄清楚JNI方法签名。使用工具。