从C ++创建COM对象?

时间:2011-01-08 10:22:33

标签: c# c++ com dllexport

我想从C ++代码创建一个dll并在C#中使用它。有没有从C ++创建COM对象的解决方案?
我不想使用System.Runtime.InteropServices

非常感谢

4 个答案:

答案 0 :(得分:4)

当然你可以用C ++编写COM +对象。 Here's a tutorial

答案 1 :(得分:4)

您可以直接编写COM(请参阅@Darin Dimitrov的回答),但您也可以使用ATL。我最喜欢将C ++代码暴露给C#的解决方案(不使用COM)是使用C++/CLI

答案 2 :(得分:1)

有三种方法可以解决这个问题。

1)使用C#中的PInvoke调用本机方法。

2)使用C ++ - CLI创建一个向C#公开本机功能的层。这是我推荐的方法性能明智。

3)将C ++ dll编写为COM对象并从C#进行访问。需要COM知识,因此需要开发成本。

答案 3 :(得分:0)

你可以使用ATL,它太简单了,你只需要注册dll。之后,您可以在所有c#programms中使用它