我正在使用供应商的ActiveX控件来读取读取RFID卡的USB设备。
我的应用程序是在java中,所以我使用EZJCom作为“桥梁” - 因此可以通过java类获得activeX控件的所有属性和方法。
如果我查看Windows设备管理器,则读卡器设备位于com端口COM8
。
现在,由于此枚举而出现问题,该枚举表示设备正在运行的COM端口。
typedef enum {
COM1 = 1,
COM2 = 2,
COM3 = 3,
COM4 = 4
} CommPortConstants;
我的Java代码可以执行此操作:
cardReader.get_DMF5Ax().setCommPort(CommPortConstants.COM4); // OK
但不是这样:
cardReader.get_DMF5Ax().setCommPort(CommPortConstants.COM8); // fails!
换句话说,由于此枚举的性质,我无法在COM8
上查找设备(通过java调用ActiveX控件)。
所以对于我的问题:有没有办法“编辑”ActiveX控件,并为枚举添加值?
或者有更好的方法(除了EZJCom之外)使用java中的activeX控件。
请注意,我没有ActiveX控件的源代码,(来自java世界)我也不熟悉制作它们的开发环境。
答案 0 :(得分:1)
我对EZJCom一无所知(关于Java的知之甚少),但是从ActiveX / COM我不认为你应该有问题。
COM方法(特别是自动化方法)不会获得Java Enums。在大多数情况下,它们要么变长,要么在某些情况下,它们会得到VARIANT或I4型。
看起来CommPortConstants只是常量,所以这对你有用:
cardReader.get_DMF5Ax.setCommPort(8)