zoukankan      html  css  js  c++  java
  • JNative 传递参数bug

     下载JNative网址:http://sourceforge.net/projects/jnative/files/jnative/

     下载JNative版本:JNative_1.4RC3_bin.zip

     bug描述:

                Test.dll中有个方法fnTest有五个参数,方法签名如下:

               void  fnTest(double a,double b,double c,double d,int e);

                

                当用JNative调用时如下:

    public void fnTest() throws NativeException, IllegalAccessException {  
            JNative fnTest=null;
    try { fnTest= new JNative("Test.dll", "fnTest"); fnTest.setParameter(0, Type.DOUBLE, "111.111"); fnTest.setParameter(1, Type.DOUBLE, "222.222"); 
      fnTest.setParameter(2, Type.DOUBLE, "333.333"); 
      fnTest.setParameter(3, Type.DOUBLE, "444.444"); 
      fnTest.setParameter(4, Type.INT, "5");  fnTest.setRetVal(Type.VOID); fnTest.invoke();

    } finally { if (fnTest!= null) { fnTest.dispose(); } } }

             代码运行起来后,到 Test.dll中的fnTest方法,发现参数a=444.444 b=333.333 c=222.222 d=111.111
             没有看源代码,具体原因不知道。

             将代码修改如下:

    public void fnTest() throws NativeException, IllegalAccessException {  
            JNative fnTest=null;        try {    
               fnTest= new JNative("Test.dll", "fnTest");  
               fnTest.setParameter(3, Type.DOUBLE, "111.111");  
               fnTest.setParameter(2, Type.DOUBLE, "222.222"); 
    fnTest.setParameter(1, Type.DOUBLE, "333.333");
    fnTest.setParameter(0, Type.DOUBLE, "444.444");
    fnTest.setParameter(4, Type.INT, "5"); fnTest.setRetVal(Type.VOID); fnTest.invoke(); } finally { if (fnTest!= null) { fnTest.dispose(); } } }


    调用成功,问题搞定!!!

  • 相关阅读:
    logging模板日志格式
    MariaDB修改默认字符集
    Django之表单验证
    Django之定制属于自己的admin
    sympy-高数可以这么学
    matplotlib01
    mysql---- 用户权限管理
    django----JSONP知识回顾
    django----文件上传
    数据库结构备份
  • 原文地址:https://www.cnblogs.com/beipiaofeng/p/3486255.html
Copyright © 2011-2022 走看看