可以修改第三方ActiveX控件中的枚举吗?

时间:2013-11-16 21:28:57

标签: java com enums activex

我正在使用供应商的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世界)我也不熟悉制作它们的开发环境。

1 个答案:

答案 0 :(得分:1)

我对EZJCom一无所知(关于Java的知之甚少),但是从ActiveX / COM我不认为你应该有问题。

COM方法(特别是自动化方法)不会获得Java Enums。在大多数情况下,它们要么变长,要么在某些情况下,它们会得到VARIANT或I4型。

看起来CommPortConstants只是常量,所以这对你有用:

cardReader.get_DMF5Ax.setCommPort(8)
相关问题