0
我痛飲你怎麼在C轉換返回值的浮動[]在java中痛飲,轉換C指針,指向浮動[]
//C Function
inline float32* b2Body::GetWorldPoint(float32 localX, float32 localY)
{
b2Vec2 val = b2Mul(m_xf, b2Vec2(localX, localY));
fin[0] = val.x, val.y;
fin[1] = val.y;
return fin;
}
正如你可以看到函數返回FLOAT32 *這是一個兩元素數組。在我痛飲文件I包括
%include cpointer.i
%include "arrays_java.i"
%apply float[] {float32*};
但我得到的錯誤:
.cpp: In function '_jfloatArray* Java_com_google_fpl_liquidfun_liquidfunJNI_Body_1getWorldPoint_1_1SWIG_11(JNIEnv*, jclass, jlong, jobject, jfloat, jfloat)':
C:/Users/Garrett/Desktop/liquidfun-master/liquidfun//Box2D/swig/jni/../gen/cpp/armeabi-v7a/liquidfun_wrap.cpp:6147:59: error: 'FillMeInAsSizeCannotBeDeterminedAutomatically' was not declared in this scope
make.exe: *** [obj/local/armeabi-v7a/objs/liquidfun_jni/gen/cpp/armeabi-v7a/liquidfun_wrap.o] Error 1
看起來它告訴你它需要知道返回對象的大小。 – Ashalynd 2014-09-30 22:42:41