【问题标题】:Call native C++ function from C# [duplicate]从 C# 调用本机 C++ 函数 [重复]
【发布时间】:2017-05-17 23:21:09
【问题描述】:

我的 C++ 遗留代码具有以下形式的函数:

double func(double)

我有这个作为源文件 - 它不是一个 DLL 的形式,虽然它可以在必要时变成一个

如何在我的 C# 代码中调用 func(可能是托管 C++)?我听说过 Marshalling 和 DllImport,但我没有发现 MSDN 很有帮助。

【问题讨论】:

  • but I did not find MSDN very helpful. 难以置信,但您还有另一种选择。谷歌....
  • 你有什么问题? MSDN 应该对此有所帮助。
  • 除了制作一个DLL之外没有别的办法吗?我不能直接从 C++/CLI 使用它吗?
  • 我能想到的 3 个选项(只需在 google 中查看更多信息): 1. 从 C++ DLL 导出函数,而不是从 C# 中 p/invoke。 2. 制作C++ COM 对象并从C# 中引用它 3. 使用C++/CLI 制作托管函数,而不是使用转换函数将参数从托管更改为非托管并使用它们来调用非托管C++
  • 感谢使用 COM 的提示 - 我没有这个想法

标签: c# c++ native-code


【解决方案1】:

您必须将 C++ 代码编译为 DLL 库,然后使用 DllImport。

我不知道你有什么问题。在 MSDN 上我发现了这个https://msdn.microsoft.com/en-us/library/e59b22c5.aspx

还有这篇文章:http://www.mono-project.com/docs/advanced/pinvoke/ 似乎很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2014-11-13
    • 2021-06-19
    • 2018-08-24
    • 1970-01-01
    相关资源
    最近更新 更多