添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
慷慨大方的皮带  ·  When I deploy the ...·  4 月前    · 
私奔的青椒  ·  Visual Studio ...·  5 月前    · 
稳重的豆腐  ·  25、Camunda Service ...·  1 年前    · 
  • float[][][] liness=linefloat( "111", "222") ;
  • System.out.println( "等值线的数量是:"+liness.length);
  • for ( int j= 0;j<liness.length;j++)
  • float[][] lines =liness[j];
  • System.out.println( "第"+j+ "个线:");
  • System.out.println( "第"+j+ "个线里点的个数是:"+lines.length);
  • for( int k= 0;k<lines.length;k++)
  • float[] line =lines[k];
  • System.out.println( "第"+j+ "个线:里有"+line.length+ "个点");
  • for( int m= 0;m<line.length;m++)
  • System.out.println( "第"+m+ "个点:的坐标是:"+line[m]);

    2.等java代码编译之后生成class文件之后,调用javah方法编译成c++的头文件,编译时需要注意如果java类在一个包下面,需要带上包名称如:cn.gov.cma.cnn.webgis.active.TestHello,并且先用cd命令进入包外面的文件夹里编译,即在class文件下编译。
    jni java与c++交互返回三维数组jobjectArray_c++_02
    编译之后在clss下生成:cn_gov_cma_cnn_webgis_active_TestHello.h文件,
    C++代码 jni java与c++交互返回三维数组jobjectArray_#endif
    1. /* DO NOT EDIT THIS FILE - it is machine generated */
    2. #include <jni.h>
    3. /* Header for class cn_gov_cma_cnn_webgis_active_TestHello */
    4. #ifndef _Included_cn_gov_cma_cnn_webgis_active_TestHello
    5. #define _Included_cn_gov_cma_cnn_webgis_active_TestHello
    6. #ifdef __cplusplus
    7. extern "C" {
    8. #endif
    9. * Class:     cn_gov_cma_cnn_webgis_active_TestHello
    10. * Method:    linefloat
    11. * Signature: (Ljava/lang/String;Ljava/lang/String;)[[[F
    12. JNIEXPORT jobjectArray JNICALL Java_cn_gov_cma_cnn_webgis_active_TestHello_linefloat
    13. (JNIEnv *, jclass, jstring, jstring);
    14. #ifdef __cplusplus
    15. #endif
    16. #endif
      1. JNIEXPORT jobjectArray JNICALL Java_cn_gov_cma_cnn_webgis_active_TestHello_linefloat(JNIEnv *env, jclass cls, jstring jMsg2, jstring jMsg3)
      2. //获得二维数组的类
      3. jclass intArrCls2 = env->FindClass( "[[F");
      4. //实例化数组对象,第一个参数数据的大小,第二个参数用来实例化用
      5. //的类是一个二维数组,也就是数组里的每个元素都是一个二维数组,
      6. //这样one就是一个三维数组。
      7. jobjectArray one = env->NewObjectArray(2, intArrCls2, NULL);
      8. for( int k=0;k<2;k++)
      9. //一维数组
      10. jclass intArrCls = env->FindClass( "[F");
      11. //创建一个有10个元素,每个元素的值是  一维数组的数组
      12. jobjectArray second = env->NewObjectArray(10, intArrCls, NULL);
      13. //给以维数据填充值
      14. for ( int i = 0; i < 10; i++) {
      15. jfloat tmp[256]; /* make sure it is large enough! */
      16. jfloatArray iarr = env->NewFloatArray(3);
      17. tmp[0] = 21.0;
      18. tmp[1] = 31.0;
      19. tmp[2] = 41.0;
      20. //把temp里的0-3的数据值设置给iarr里
      21. env->SetFloatArrayRegion(iarr, 0, 3, tmp);
      22. //给一维数组的第i个元素设置值
      23. env->SetObjectArrayElement(second, i, iarr);
      24. //删除临时元素iarr数组
      25. env->DeleteLocalRef(iarr);
      26. //给三维数组里的每个元素设置值,值是一个有一个元素组成的二维数据,每个元素是一个由三个浮点小数组成的三维数组
      27. env->SetObjectArrayElement(one, k, second);
      28. //删除临时元素二维数组
      29. env->DeleteLocalRef(second);
      30. return one;
  •