如何从C ++ COM迁移到C ++ CLI

我有一个C ++ DLL,通过COM公开东西。 我想将其转换为公开托管接口的C ++ / CLI。 理想情况下,我只需添加CLI并逐个转换接口。 到目前为止,我还没有成功,所以我正在寻找一个具体的策略。


更多细节:很久以前,我使用COM创建了一个应用程序,用于在C#和C ++之间来回通信。 我厌倦了COM,并且在C ++方面需要注册和箍跳。

我想使用C ++ / CLI,并将整个工作作为托管代码,偶尔从C ++ / CLI调用我正在使用的本机库。

任何人都可以提出一个温和的迁移路径,这样我就可以同时使用CLI和COM,并且在我去的时候通过类测试转换类。 或类似的东西。

需要说明的是:我目前拥有定义和实现COM接口的本机C ++代码。 我有C#代码使用COM属性来导出类。 所有这些东西都被注册为COM互操作,并且有两个方向的呼叫。 我希望将C ++切换到CLI并切换到C ++中的托管类而不是COM类。

Ramhound更新了问题:无论如何,我遇到了砖墙。 在C ++ dll上打开/ clr会给我尝试连接到该C ++代码的其他东西带来链接错误。 (那种让我远离C ++的不可读的ATL / COM消息)

您可能需要仔细阅读,因为它提供了一些不同的方法和考虑因素: http : //msdn.microsoft.com/en-us/magazine/dd315414.aspx

下面是一个如何在C ++ / CLI中使用interop的简单示例,您可以在其中定义一个或两个方法并添加更多内容: http : //blogs.msdn.com/b/borisj/archive/2006/07/ 29 / 683061.aspx

请关注此

http://msdn.microsoft.com/en-us/magazine/cc163494.aspx

使用tlimp生成一个COM非托管DLL到托管DLL

很简单!!!