下载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();
}
}
}

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

JNative 传递参数bug的更多相关文章

  1. bat 传递参数

    调用bat时,传递参数有个小问题,记录一下. 1.问题描述: 传递参数时,接收的值不对.传递了“1,2,3”,接收时,只剩下1.后面的没有了. 解决: 原因是bat取参时,语法弄错了. Syntax ...

  2. vue中 router-link 传递参数以及获取

    将所遇见的问题一步一步记录下来,不久便会成长 今天在修改前端(vue) BUG的时候遇见 router-link标签,传递参数到另一个页面,确不知道参数在另一个页面怎么接收,于是找度娘需求解决办法,最 ...

  3. hadoop传递参数方法总结

    转自:http://blog.csdn.net/xichenguan/article/details/22162813 写MapReduce程序通常要传递各种各样的参数,选择合适的方式来传递参数既能提 ...

  4. linux内核可以接受的参数 | Linux kernel启动参数 | 通过grub给内核传递参数

    在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...

  5. Vue 给子组件传递参数

    Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...

  6. [转] C++的引用传递、指针传递参数在java中的相应处理方法

    原文出处:[http://blog.csdn.net/conowen/article/details/7420533] 首先要明白一点,java是没有指针这个概念的. 但是要实现C++的引用传递.指针 ...

  7. 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

    目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...

  8. 在 Angularjs 中 ui-sref 和 $state.go 如何传递参数

    1 ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: <a ui-sref="message-list" ...

  9. Linux线程体传递参数的方法详解

    传递参数的两种方法 线程函数只有一个参数的情况:直接定义一个变量通过应用传给线程函数. 例子 #include #include using namespace std; pthread_t thre ...

随机推荐

  1. GlusterFS分布式存储系统中更换故障Brick的操作记录

    前面已经介绍了GlusterFS分布式存储集群环境部署记录,现在模拟下更换故障Brick的操作: 1)GlusterFS集群系统一共有4个节点,集群信息如下: 分别在各个节点上配置hosts.同步好系 ...

  2. Nginx负载均衡中后端节点服务器健康检查的操作梳理

    正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...

  3. php的垃圾回收机制

    转载请附上本文地址:http://blog.csdn.net/u011957758/article/details/76864400 前言 是的,平时经常听到大牛说到的gc,就是垃圾回收器,全称Gar ...

  4. 软件工程附加篇章:进阶四则运算和Core对接

    0x01 :计算模块(Core)和前端对接 首先特别结对编程刘乾组(SivilTaram)提供的计算模块(Core),http://www.cnblogs.com/SivilTaram/p/48599 ...

  5. 基于SSH框架的考勤管理系统的设计与实现

    基于SSH框架的考勤管理系统的设计与实现

  6. <构建之法>13——17章的读后感

    第13章:软件测试 问题:对于这么多种的测试方法,怎么才能最有效的选取? 第14章:质量保证 问题:很多工程师都把大多数时间花在软件质量上.一成不变是无法创新的.如何在保证质量的情况下,又得到创新呢? ...

  7. 软件工程项目之摄影App(第二次冲刺)

    第二次冲刺阶段做出了登录,还有首页.基本界面也成型了. 登录验证码是用了mob的验证码skd.

  8. redis的优缺点

    优点: 1 读写性能优异 2 支持数据持久化,支持AOF和RDB两种持久化方式 3 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离. 4 数据结构丰富:除了支持string类型的value ...

  9. 如何使squild服务只能使用自定义的端口号

    编辑配置文件: vim /etc/squid/squid.conf http_port  10000 使用 setsebool 命令来限制 squild 服务只能使用自定义的端口: setsebool ...

  10. Python入门:数据结构的4种基本类型

    数据结构:通俗点说,就是储存大量数据的容器.这里主要介绍Python的4种基本数据结构:列表.字典.元组.集合. 格式如下: 列表:list = [val1,val2,val3,val4],用中括号: ...