要读IC读卡机的信息,现在就是有个dll,还有个说明
文件为ZrkjDll.DLL,提供外部调用的读卡函数ReadIC_GRBH。
函数原型:
function ReadIC_GRBH(port: SmallInt; baud: LongInt; out_data: PChar): LongInt;
说明:该函数用来读取IC卡内数据
调用:port: SmallInt--- 0、1、2、3表示串口1,2,3,4
等于100是表示连接的是USB接口
  baud: LongInt---通讯口为串口时表示波特率,其值可为1200~115200
                 通讯口为并口时表示半字节或全字节通讯方式,其值为0或1
 out_data: PChar---存放数据的缓冲区
返回:<0 错误。
      =0 读取数据正确
举例:ReadIC_GRBH(0,9600,out_data)
  读取数据到out_data。应该怎么写java呢?

解决方案 »

  1.   

    这个……
    先写一个java类,里面有本地函数
    public native long ReadIC_GRBH(int port, long baud, char[] out_data);
    编译后用javah得到一个头文件,里面会有一个JNIEXPORT jlong JNICALL Java_XXX_ReadIC_GRBH函数
    然后编写c文件实现头文件里这个函数,通过调用原有的dll里的函数的方法实现
    然后再编译得到新的dll我想……应该是这样的吧
      

  2.   


    现在已经有dll,为什么还要自己写?
      

  3.   

    java调用dll有固定的导出函数格式的,你按照jni教程上编译一个dll出来用查看工具看下就知道了
      

  4.   

    本网站下载的比较好的例子http://hi.csdn.net/link.php?url=http://community.csdn.net%2F看看
      

  5.   

    所以说给我一个dll我用jni不一定能调用?,只能是我重新写java-》class-》h-》dll,这样的过程才行?