我想最好不改动DLL,这个DLL是以前VC开发的C/S模式客户端使用的读卡器驱动,现在想改成B/S模式,但还是要在浏览器端使用读卡器,这个DLL还要放在服务器端么?可那样的话能控制浏览器端的读卡器么?多谢。

解决方案 »

  1.   

    不可以直接调用别的DLL,但是你可以再写一个JNI的DLL来封装那个读卡机的DLL来使得Java可以调用
      

  2.   

    另外,如果使用浏览器则没有必要写什么JNI了
    你直接用VB、Delphi写一个ActiveX控件在网页上调用完事,只需要写一个cab包让IE下载里面包含ActiveX控件和读卡机DLL(具体打包格式去看文档)
      

  3.   

    银行的ATM 、查询机基本都是楼上说得ActiveX模式来操作硬件的(读卡器/打印机...)
      

  4.   

    可我需要在JSP网页中得到读卡器取得的数据,怎么才能和这个ActiveX控件通讯?
    如果我用JNI封装原来的DLL,是不是需要浏览器端把这两个DLL下载到本地才能使用?
      

  5.   

    如果在JSP中调用那么不必要写JNI,写了也没有用。一般来说你可以在网页中调用这个ActiveX控件,将读取到的数据放入一个Hidden框中来进行提交到服务器上。
      

  6.   

    这里有些JNI的文章,喜欢的话可以看看:http://www.graphics.net.cn/article/java/java_jni_vc6.asphttp://www.graphics.net.cn/article/java/java_jni_string.asphttp://www.graphics.net.cn/article/java/java_jni_skill.asphttp://www.graphics.net.cn/article/java/java_jni_skill_2.asphttp://www.graphics.net.cn/article/java/java_jni.asp