我有一个umdf驱动程序,我想调用.jar文件中的一些函数来建立我的驱动程序(PCSC Reader)和eclipse插件(JCOP)之间的连接。
我使用JNI在c ++ main中调用了一些java函数(来自.jar),但是我们可以在UMDF驱动程序中编写JNI代码吗? 如果是的话,我会很感激有关如何处理这个问题的一些指导方针或意见......
当你谷歌它没有太多关于这个主题的信息,所以任何信息都非常感谢! 谢谢。
答案 0 :(得分:0)
我没有任何UMDF驱动程序经验,但是,在阅读了视图后,我没有看到任何理由为什么JNI无法直接与Reflector通信。我认为它不能与设备堆栈或管理器通信。所以,如果我理解正确的话,你可能应该有一些独立于JNI加载的驱动程序,然后使用JNI通过Reflector与驱动程序通信。
更一般地说,我建议保持JNI代码尽可能简单。我的JNI代码通常仅用作Java< =>原生翻译层。所有复杂性和处理都在一个可以独立于Java运行的后备库中完成。通过这样做,您可以使用gdb或visual studio调试本机代码,而无需跳过已经运行的JVM。您可以选择将独立库作为本机依赖项发布,并将其添加到系统库加载路径,也可以将其静态链接到JNI库。在这种情况下,我使用LTO和静态链接获得了非常好的结果。