【问题标题】:How can we use .NET dll in VC++?我们如何在 VC++ 中使用 .NET dll?
【发布时间】:2009-11-26 10:41:27
【问题描述】:

请建议我在 VC++ 项目中使用 .NET dll 的最佳方式。

【问题讨论】:

    标签: c# .net c++ mfc visual-c++


    【解决方案1】:

    使其 ComVisible。见link text

    【讨论】:

    • 这是唯一的方法还是还有另一种方法?
    • 我不知道任何其他实用的方法。
    【解决方案2】:

    如果您创建了一个托管 (CLR) VC++ 项目(我相信您可以在编译器设置中进行设置,但我不能 100% 确定您是否需要更改代码中的其他任何内容以使其正常工作) ,您可以在没有任何“com”代码的情况下使用 .Net 代码,尽管您必须编写托管 c++ 代码(这样您还可以获得托管 .Net 代码的优势以及标准 c++ 的优势)

    【讨论】:

    • 不幸的是,事情没那么简单。首先,您必须管理代码中所有东西如何从托管区域到非托管区域进行通信(例如,有非托管指针 * 和托管指针 ^)。 C++/CLI 也不支持整个 C++ 标准(特别是在模板等高级领域)。因此,如果您真的需要一种“简单”的方式,您应该使用 COM。如果您准备好采用“硬”方式(这将导致代码非常快),您可以使用 C++/CLI
    • 恕我直言,处理不同的 C++/CLI 指针比处理 COM 接口要容易得多,而且我个人在 C++/CLI 中使用模板没有任何问题,尽管您可能无法使用托管模板,从未尝试过,但如果需要,您可以随时使用泛型(我并不是说它们是相同的,但它们都有优点/缺点)。
    【解决方案3】:

    作为替代方案,如果您不介意使用mono 版本而不是 Microsoft,您可以将 mono 运行时嵌入到您的 VC++ 代码(它是纯 C)中,并使用它来加载程序集和调用方法,如描述here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多