2011-06-10 38 views
1

以下是一個Java我的函數定義:Jfloat到浮法

public static native void ToucheBegan(float x, float y, int tapcount); 

這裏是我的CPP

JNIEXPORT void JNICALL Java_com_android_templateApp_GL2View_ToucheBegan(JNIEnv *env, jfloat x, jfloat y, jint tap_count); 

定義當我登錄:

從Java我送:

125.278595 496.842102 1 

而在C++中,我收到:

3.274879 125.278595 1140353994 

是否有某種轉換必須在jfloat之間進行浮動或jint到int?

TIA!

回答

0

沒有任何特殊的轉換要求。

檢查您的C++日誌記錄是否按預期行事。一種方法是將已知值分配給C++函數中的x,y和tapcount,並確保它們按預期記錄。

3

您忘記隱含jobject/JCLASS的說法,每一個JNI功能有:

void JNICALL Java_com_android_templateApp_GL2View_ToucheBegan(JNIEnv *env, jobject thiz, jfloat x, jfloat y, jint tap_count); 

所以你解釋 'THIZ' 爲 'X', 'X' 的 'Y' 和 'Y' 爲「tap_count 」。