2014-10-18 39 views
3

我們有一箇舊的OCX,用於舊的VB應用程序。 現在他們都不支持開發者。並且源代碼也不可用。 OCX包含一個計算值的函數,現在我們必須更改計算公式。 有沒有什麼辦法可以重寫方法並創建具有相同功能的新聞ocx?將功能添加到編譯的OCX中

編輯:ocx包含一個使用mscomctl2.ocx的日期選擇器,我們的公式基於選定的日期,所以如果我們可以找到一個解決方案,在選擇後更改日期,我們可以達到我們的需要。

+0

嘗試掛鉤它http://stackoverflow.com/q/15756386/1291428 – Sebas 2014-10-18 05:36:56

+0

掛鉤鏈接將是沒有用的。你不能修改編譯的OCX。你可以用一個新的OCX替換它(對舊版本進行二進制兼容編譯),但是你需要在其公共接口中複製所有的功能。 – 2014-10-18 11:24:17

+0

@AlexK。難道你只是編寫另一個控件,它是用戶描述的包裝的一個包裝,並在Ashian感興趣的一個函數中進行正確的計算?我想這取決於它是什麼樣的控制,並且它暴露了他需要做的計算他需要做的屬性。 – 2014-10-18 12:06:49

回答

0

還有另一種方法,只有在您是該ocx文件的所有者時才能使用。您可以使用vb反編譯器從ocx文件獲取源代碼,以便修改和創建新的源代碼。這裏是一個反編譯

http://www.vb-decompiler.org/

0

您可以decompile OCX,使用鉤子,內存補丁或完全重寫它作爲其他意見和答案提及。

但我會嘗試的第一件事是圍繞OCX進行封裝。如果您的功能取代了某些功能或在之前或之後添加了功能,則封裝(AKA代理模式)是最佳選擇。

此方法的示例是使用OpenGL的dx3d周圍的DLL。