【问题标题】:Calling a C# function from a C++ DLL从 C++ DLL 调用 C# 函数
【发布时间】:2012-03-04 05:09:04
【问题描述】:

我有一个用 C++ 编写的 DLL,我想将 C# 函数传递给 C++ DLL 中的函数并从 C++ 调用 C# 函数。我该怎么做?在此先感谢,请保持您的答案简单。我认为我不需要为此发布代码示例,但如果您需要,请询问。

【问题讨论】:

  • 这和Lua有什么关系?您只是在询问从 C++ 代码调用 C#。

标签: c# c++ function variables dll


【解决方案1】:

通常有两种方法可以做到这一点:COM 互操作和反向 PInvoke。如果您要传递大量具有行为的对象,那么 COM 互操作可能是您最好的选择。虽然听起来你只是想传递一个函数。如果是这样,那么 Reverse PInvoke 就是您想要的。

这是一个很好的主题教程

虽然基本过程与普通 PInvoke 非常相似。

  • 定义一个本机入口点,该入口点至少采用一个函数指针
  • 将本机指针定义为托管代码中的委托
  • 通过入口点向下传递委托

现在可以在本机代码中作为普通函数指针调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多