2012-07-18 83 views
1

我被拋入了遺留系統增強。它是VB6 + asp(老派的asp)系統。所以基本上,系統會做一些數據庫查詢並將結果推送到一個activeX對象(一個OCX)中,以便信息以條形碼形式打印。確定並更改一個VB6 OCX ClassID

我被要求修改OCX,以便它不打印一些徽標,但是,我需要爲現有打印目的保留原始的一個。所以,我「另存爲」原來的一個,並設法成功修改它。

系統應將OCX安裝到用戶PC中。但是我注意到,不是爲了兩種不同的打印目的而使用兩個不同的OCX來運行,系統僅使用最新的OCX用於兩種打印。 OCX的命名不同。他們共享的唯一的東西是CLASS ID。

如何確定新重新編譯的OCX的CLASS ID,是否可以對其進行更改?怎麼樣?

+0

你有沒有得到的結果? – 2017-01-10 11:10:32

+1

@ImranKhanHunzai看看答案:P – 2017-01-12 03:30:56

回答

2

OCX沒有ClassId。然而,他們內部的控制。

要查看各種GUID的值(除了ClassIds還有其他參與者),一種簡單的方法是通過Visual Studio 6.0附帶的OLE View工具查看typelib信息,Win2k資源工具包等。

+0

完美無瑕!那麼每個控件都是獨特的嗎 – 2012-08-05 09:47:17

+1

如果我理解這個問題,是的,每個控件或類都需要一個唯一的Id,因爲這是它們所在的庫(x.ocx,y.dll等)以及其他細節在運行時的位置。 – Bob77 2012-08-05 22:07:44

2

的CLASSID是跨越舊的控制的版本保持兼容性的COM的方式。你真的不想改變它。在同一臺機器上保留兩個版本也是不可取的。通過創建一個忽略橫幅的控件的「新」版本,讓編譯器爲控件分配一個新的CLSID,保持路徑乾淨,您可能會獲得最佳效果。

+1

可以說我添加了新的控件,我該如何確定OCX類的ID? – 2012-07-18 04:29:53