【问题标题】:C++/CLI vs COM - Which is better?C++/CLI 与 COM - 哪个更好?
【发布时间】:2011-12-15 10:24:12
【问题描述】:

我目前正在开发一个 .NET 项目,该项目通过使用 C++/CLI 项目与本机 C++ 库进行通信。然而,随着这个项目的推进,我希望能够公开原生 C++ 代码的特定模块,最好是尽可能少地实现额外的实现,同时保持可重用性和可扩展性。

我已经对这两种用途进行了一些研究,但无法确定哪种方法更适合解决此目的。有人能解释一下哪种方法最适合这种情况吗?

【问题讨论】:

  • 听起来您以前从未编写过 COM 服务器。写一个,你就知道了。使用 ATL 和 Visual Studio 中内置的向导来争取机会。
  • C++ Cli 绝对是赢家。
  • 如果你想让它跨平台,另一个选择是 C++ / C# 和 SWIG

标签: c++ com interop c++-cli


【解决方案1】:

如果您想为 .NET 打包原生 C++ 代码,请使用 C++/CLI。对于简单的 C 风格 API,可以使用 PInvoke。

如果您想为 .NET 和 COM 客户端(如 Internet Explorer、MS Office、脚本语言等)打包原生 C++ 代码,请使用 COM。

在我看来,编写 COM 包装器是一项更复杂的任务。但是 COM 大师可以有不同的意见 - 这取决于您在这些技术方面的经验。

【讨论】:

    猜你喜欢
    • 2020-07-18
    • 2014-04-02
    • 2013-11-28
    • 2010-10-11
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多