是否有从非Com.NET DLL生成Com类包装的实用程序?

是否有从非Com.NET DLL生成Com类包装的实用程序?,com,wrapper,Com,Wrapper,我有一个第三方DLL,需要称为COM。它不是COM,而是一个.NET DLL。是否有任何实用程序会自动为其生成CCW?Visual Studio没有手工制作,而是包含一个名为“tlbexp”的程序,即类型库导出程序。这将获取一个.NET程序集并从中生成一个COM类型库,然后可以将其导入到基于COM的开发工具(如VB6)中。您还可以在部件上使用“regasm”工具,该工具将导出类型库并自动在机器上注册 所有这些都假设第三方.NET DLL是在考虑COM的情况下编写的;这些类型必须是COM可见的,以

我有一个第三方DLL,需要称为COM。它不是COM,而是一个.NET DLL。是否有任何实用程序会自动为其生成CCW?Visual Studio没有手工制作,而是包含一个名为“tlbexp”的程序,即类型库导出程序。这将获取一个.NET程序集并从中生成一个COM类型库,然后可以将其导入到基于COM的开发工具(如VB6)中。您还可以在部件上使用“regasm”工具,该工具将导出类型库并自动在机器上注册


所有这些都假设第三方.NET DLL是在考虑COM的情况下编写的;这些类型必须是COM可见的,以便导出者提取它们。此外,除非程序集包含用于控制类型库生成的互操作属性,否则您将获得一些外观相当粗糙的COM类型(以及非常长的progid),但它们仍然可以工作:)

Visual Studio包含一个名为“tlbexp”的程序,即类型库导出程序。这将获取一个.NET程序集并从中生成一个COM类型库,然后可以将其导入到基于COM的开发工具(如VB6)中。您还可以在部件上使用“regasm”工具,该工具将导出类型库并自动在机器上注册


所有这些都假设第三方.NET DLL是在考虑COM的情况下编写的;这些类型必须是COM可见的,以便导出者提取它们。此外,除非程序集包含用于控制typelib生成的interop属性,否则您将获得一些外观非常粗糙的COM类型(以及非常长的ProgID),但它们仍然可以工作:)

这就是问题所在,它不是COM可见的。但是听上去会有一个混乱的tbl。如果.NET程序集没有任何COM可见接口,那么您只需要在其周围编写自己的COM可见包装(基本上是通过调用),并由此生成CCW。另一方面,您可以应用适当的互操作属性来降低typelib的丑陋程度(特别是ClassInterfaceAttribute和ProgIdAttribute)。这就是问题所在,它是不可见的。但是听上去会有一个混乱的tbl。如果.NET程序集没有任何COM可见接口,那么您只需要在其周围编写自己的COM可见包装(基本上是通过调用),并由此生成CCW。另一方面,您可以应用适当的互操作属性来降低typelib方式的丑陋程度(特别是ClassInterfaceAttribute和ProgIdAttribute)。