簡體   English   中英

可以修改第三方ActiveX控件中的枚舉嗎?

[英]Possible to modify an enum in a third-party ActiveX control?

我正在使用供應商提供的ActiveX控件讀取USB卡的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世界)也不熟悉用於制作它們的開發環境。

我對EZJCom一無所知(對於Java卻一無所知),但是從ActiveX / COM來看,我認為您應該不會遇到任何問題。

COM方法(特別是自動化方法)不獲取Java枚舉。 在大多數情況下,它們要么得到LONG,在某些情況下,它們將得到VARIANT或I4類型。

看起來CommPortConstants只是常量,因此這應該對您有用:

cardReader.get_DMF5Ax.setCommPort(8)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM