1
我有第三方DLL需要被稱爲COM。它不是COM,但它是一個.NET DLL。有沒有可以自動生成CCW的公用程序?而不是手工製作一個?是否有一個實用工具從非COM .NET DLL生成Com類包裝?
我有第三方DLL需要被稱爲COM。它不是COM,但它是一個.NET DLL。有沒有可以自動生成CCW的公用程序?而不是手工製作一個?是否有一個實用工具從非COM .NET DLL生成Com類包裝?
Visual Studio包含一個名爲「tlbexp」的程序,類型庫導出程序。這需要一個.NET程序集並生成一個COM類型庫,然後您可以將其導入到基於COM的開發工具(如VB6)中。您也可以在組件上使用「regasm」工具,該工具將導出類型庫並將其自動註冊到機器上。
所有這一切都假設第三方.NET DLL是用COM編寫的;這些類型需要是COM可見的供出口商選擇。另外,除非程序集包含互操作屬性來控制typelib生成,否則你會得到一些相當粗糙的COM類型(並且確實很長的ProgIds),但它們仍應該工作:)
這就是問題,它不是COM可見的。但通過它的聲音,只會有一個混亂的tbl。 – nportelli 2011-04-15 00:51:07
如果.NET程序集沒有任何COM可見接口,那麼只需要在它們周圍編寫自己的COM可見包裝(基本上是傳遞調用)並從中生成CCW。另一方面,你可以應用適當的interop屬性來使typelib方法變得更加難看(特別是ClassInterfaceAttribute和ProgIdAttribute)。 – 2011-04-18 21:24:44