0

私はJNIが初めてで、以下の関数に3つの整数を渡したいと思っていました

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

私が間違っている場合は修正してください

(! 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);
        }
4

1 に答える 1

1

'javap -s' が 100% の信頼性で正しい答えを教えてくれるので、手で JNI メソッド シグネチャを理解しようとしないでください。ツールを使用します。

于 2012-07-19T12:33:56.070 に答える