或VB6兼容集合對象創建VB6集合對象。如何使用ATL
我們通過一系列API爲我們的.net產品提供掛鉤。
我們需要繼續支持從VB6調用API的客戶,所以我們需要繼續支持VB6集合對象(在.net中使用VBA.Collection是很簡單的)。
問題是支持一些使用VBScript調用我們的API的網站。 VBScript沒有集合對象的概念,所以要創建一個集合對象傳遞給我們的API,我們構建了一個VB6 ActiveX DLL,它提供了一個「CreateCollection」方法。此方法只是創建並傳回一個新的集合對象。問題解決了。
經過多年的修剪,移植和重新構建,這個DLL是我們唯一的VB6代碼。因此,我們仍然需要在我們的Dev &構建機器上安裝Visual Studio 6。
我不滿意我們對這個DLL的依賴有幾個原因(我個人不喜歡VB6不是其中之一)。最重要的是微軟不再支持Visual Studio 6.
我的問題是,我如何獲得ATL創建一個集合對象實現與VB6集合對象相同的接口。我已經很好地掌握了C++,但只是對ATL的一種輕鬆掌握 - 我可以創建簡單的對象並實現簡單的方法,但這超出了我的想象。
這聽起來像此VB6 DLL更改很少。你真的需要經常創建它嗎?我的想法是不再支持** VB6 IDE **,但支持** VB6運行時**。如果你不需要構建這麼多的DLL,是不是支持IDE的一個大問題? – MarkJ
我知道你的意思,但我們有法定義務能夠建立我們所有的代碼。我們不能擁有我們無法構建的非第三方組件。 –
VB6中的「強類型」集合仍然通過IEnumVARIANT枚舉。投射是隱式完成的(並可能失敗)。 – wqw