2011-12-15 112 views
1

我目前正在使用.NET通过使用C++/CLI项目与本地C++库进行通信。然而,继续这个项目,我希望能够公开本地C++代码的特定模块,最好尽可能少的额外实现,同时保持可重用性和可伸缩性。C++/CLI与COM - 哪个更好?

我已经对这两种用法做了一些研究,但不能解决哪种方法更好地解决这个问题。有人可以解释哪种方法最适合这种情况,如果有的话?

+1

这听起来不像你曾经写过COM服务器。写一个,然后你就会知道。使用ATL和Visual Studio中内建的向导有战斗机会。 – 2011-12-15 10:50:13

+1

C++ Cli绝对是赢家。 – 2011-12-15 10:55:15

回答

2

如果您想要封装.NET的本机C++代码,请使用C++/CLI。对于简单的C风格API,可以使用PInvoke。

如果要为.NET和COM客户端(如Internet Explorer,MS Office,脚本语言等)封装本机C++代码,请使用COM。

在我看来,编写COM包装器是比较复杂的任务。但COM大师可以有另一种观点 - 这取决于你在这些技术上的经验。