我创建了一个C#库,它使用现有的COM类型并通过COM公开一些函数。
我在Visual Studio 2013中的Reference Manager中添加了对现有TypeLib的引用。它自动创建了interop程序集并嵌入了interop类型。
我公开的一些COM函数的参数类型来自互操作程序集。
然后我使用 regasm 工具(以及 / codebase / tlb 选项)注册我的程序集。
问题:具有互操作类型的参数变为IUnknown接口!
以下是 regasm 向我显示的警告:
Warning: Type library exporter could not find the type library for 'Foo.Bar'. IUnknown was substituted for the interface.
例如,我的导出函数如下所示:
MyFunction(IUnknown bar);
而不是:
MyFunction(Bar bar);
我做错了什么?
编辑:我已使用IBar
而不是Bar
进行了测试,但没有任何变化。