【问题标题】:Call C++ code from c#从 c# 调用 C++ 代码
【发布时间】:2013-07-12 17:39:23
【问题描述】:

我正在 WPF C# (Visual Studio 2008) 中为用 c++ 编写的数学模型实现一个 GUI。我可以在单个 VS 解决方案中完全访问两个项目的源代码

我的问题是:

  1. 是否可以从 C# 调用 C++ 中的方法?
  2. 如果是,最好的选择是什么?
  3. 我需要在 C++ 中做什么才能“公开”该方法?

我曾尝试“添加参考”,但我认为它不会像这样工作。

【问题讨论】:

标签: c# c++ wpf


【解决方案1】:

有多种选择。

最简单的选择通常是使用 C++/CLI 为您需要的 C++ 方法创建一个包装器。然后,您可以从 C# 项目中添加对 C++ DLL 的引用,并正常使用它。

或者,您可以通过 C API 公开所需的 C++ 方法,然后使用 P/Invoke 从 C# 调用它们。

【讨论】:

    【解决方案2】:

    如果你有一个 C++ 库 (.dll),你可以像这样在 C# 中使用它:

    [DllImport("filename.dll")]
    public static extern void MethodName(ParameterList);
    

    然后你可以在你的 C# 代码中调用MethodName(...)

    【讨论】:

    • 请注意,这需要将 MethodName 导出为 C 样式方法(即:在声明中使用 extern "C"),因此它的名称不会得到 C++ 名称修饰。
    猜你喜欢
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多