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

问题描述 投票:3回答:2

我有一个通过COM公开内容的C ++ DLL。我想将其转换为公开托管接口的C ++ / CLI。理想情况下,我只添加CLI并一个接一个地转换接口。到目前为止,我什么都没有成功,因此我正在寻找一种特定的策略。


更多详细信息:很久以前,我创建了一个使用COM在C#和C ++之间来回通信的应用程序。我讨厌COM,C ++方面需要注册和跳环。

[我想使用C ++ / CLI,并通过从C ++ / CLI到我正在使用的本机库的偶尔调用来使整个事情作为托管代码工作。

[谁能提出一条温和的迁移路径,这样我既可以使用CLI也可以使用COM,并且可以在进行类测试时逐个类地转换内容?或类似的东西。

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

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

c# com c++-cli
2个回答
2
投票

您可能想通读此书,因为它提供了一些不同的方法和涉及的注意事项:http://msdn.microsoft.com/en-us/magazine/dd315414.aspx

这里是一个简单的示例,说明如何在C ++ / CLI中使用互操作,您可以在其中定义一个或两个方法,并在添加时添加更多方法:https://docs.microsoft.com/en-us/archive/blogs/borisj/interop-101-part-1


-1
投票

请遵循此

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

使用tlimp将COM非托管DLL生成为托管DLL

非常简单!!

© www.soinside.com 2019 - 2024. All rights reserved.