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