在我的Java代碼中,我有一個2D浮點數組float[x][4] floatArray
。這裏x
可以在1到25之間。我必須通過JNI
將這個2D浮點陣列傳遞給C++
方法。我JNI
方法是通過JNI將float [] []傳遞給C++的最簡單方法
jboolean MyJNIMethod(JNIEnv * env, jobject obj, jobjectArray myArray)
{
//how to convert this myArray to something that can be safely passed to C++ method below
}
裏面MyJNIMethod
我得叫C++
方法,並傳遞從Java採取2D float數組這種方法
bool MyCplusPlusMethod(float coordinates[][4])
{
}
我有在適當的轉換jobject飄起了困難時期[] []由於缺乏本土開發知識。任何人都可以告訴我最簡單和最安全的方法嗎?由於
你可以簡化這個:
發佈本地陣列參考Java行主要1D數組,並將其傳遞給float [] [4]。在C++中,1D和2D數組在內存中看起來相同。 –
第二個建議將一維數組傳遞給JNI。請記住,您還需要通過尺寸。 – jackrabbit
我決定在JNI和C++中使用vector>。現在我正在讀JNI中的float [] []。填充矢量>並將其傳遞給C++ –