当前开发个项目需要读取到 依时利 889D 考勤机数据,查看系统自带的二次开发范例,有PB VB范例,我不懂这两种语言,但看其程序里面都有 EastRiver.dll 这个dll文 及 EastRiver.ini 这个ini文件,所以是这两种语言调用 dll进行操作的吧,查看帮助文档信息附在后面,但如果用Java语言调用这些dll及相关方法以获取考勤机上的数据?没有思路,因为没有底层接口开发的经验,故在这里开帖向大家请教,并从中学习,TKS。(看了相关资料说是用JNI,但没学习JNI,欢迎大家讨论)依时利 889D 帮助文档/*
文档中各个函数的语法均用Delphi声明,如有不便,在此深表歉意。在调用过程中,如有疑惑,欢迎来电咨询!
*/
/************** A *********************/
 BatchReadRecord: 批量读取数据 语法:
   function BatchReadRecord(hPort: THandle; var Records: array of TICRecord{; ArraySize: Integer}): Integer; 参数说明:
   hPort: 端口句柄, 调用OpenCommPort函数得到,需要联机
   Records: 返回记录数组, 最少需要16个单元
   ArraySize: Delphi不需要,如果是VB或是C++需要传数组大小参数    返回变量:   -1     : 错误   0      : 记录已经读完   1-16   : 正确读取的记录条数 其它说明:
   1.本函数每次读回一批(最大不超过16)记录, 用户应在一个循环语句中反复读取,直到返回值为0时数据
     读取完成
   2.TICRecord结构中包含一条记录
   3.使用该命令读取记录时,机器中的数据会自动删除 适用机型:
   ER88X、ER-890、ER-98X、ER-690D、ER-690C1.X版/************* B ********************/
 OpenCommPort: 打开串行通讯端口 语法:
 function OpenCommPort(Port: Integer; BaudRate: Integer): Thandle; 参数说明:   Port:端口号,允许值1-256, 如: COM1=1, COM2=2...COM256=256   BaudRate:端口波特率,允许值:9600、19200、38400、通常是9600,对
     于ER981、ER890机型还支持57600、115200的波特率返回变量:   如果函数调用成功,返回的值就是端口句柄,用于其它函数调用。   如果函数调用失败,当返回的值是-1时,端口无效或正在使用;                      
                     当返回的值是0时,无法打开端口。
其它说明:
   1.用户可声明TClockINfo类型的变量,然后对数据结构赋值,再传入该结构中Port及BaudRate域值做为本函
     数的参数,当然,也可不定义TClockInfo来实现
   2.使用Windows API 函数CloseHandle(hObject: HANDLE): BOOL; 来关闭端口句柄/*****************  C  ************************/ ClosePortHandle: 关闭端口句柄 语法:
 function ClosePortHandle(hPort: THandle): Boolean; 参数说明:   hPort:   己经打开的端口句柄,通过调用OpenCommPort函数得到其它说明:
  也可以调用Windows的API函数CloseHandle返回变量:   如果函数调用成功,返回的值是True   如果函数调用失败,返回的值是False/**************************************/

解决方案 »

  1.   

    java调用dll需要java jni
      

  2.   


    我大概也清楚需要JNI,但因为项目比较急,不想深入研究(因为一般很少用到这个技术,学习需要时间),只想把功能实现即可可否依照以上资料帮我写个程序,分数可以再加如需其他条件,也可以谈- -#
    (如还需其他二次开发文档及资料,我可以提供^..^)
      

  3.   

    期盼你能找到答案,我们上次也有个项目是要调用视频监控主机的程序,中间需要调用第三方公司(视频)提供的ocx控件,上次找也是说用jni,不过因为项目搁置了,所以现在也没有去管这个事。
      

  4.   

    可以使用JACOB和JWIN对DLL操作,不用去关心底层实现,使用JNI需要对C语言有基础并能编写
      

  5.   

    既然没有现成的答案,我还是先自己学习一下JNI吧,如有相关经验的朋友看到了,希望您能与我交流,万分感谢~~~~
      

  6.   


    要用jni需要对C语言有基础和编写能力,我告诉你的JACOB和JWIN是两个开源项目,目前由国外程序员在维护,他们都是已经封装了底层实现,JNI一般不用自己去写,只要关心怎么实现就行了,你觉得有帮助的话,你可以自己去看看资料..........
      

  7.   


    Hello injuer,我百度 跟GG都查了下,没有满意的相关资料,你那边是否有,如有,欢迎提供学习交流,TKS,QQ:1335861994