【问题标题】:C++ function trigger C# functionC++函数触发C#函数
【发布时间】:2014-11-17 14:43:48
【问题描述】:

基本上我的代码如下所示

Managed.dll

Managed.cs

class MyManagedClass
{
public ShowMessage()
{
System.out.println("My Message");
}
}

Wrapper.dll

ref class Wrapper

    {

    };

Native.lib

class NativeClass
{
public:
void NativeMessage()
{
cout<<"Print Message";
}

}

主要

void main
{
NativeClass ob;
ob.NativeMessage();
}

我的问题是每当“ob.NativeMessage();”调用时,必须以某种方式触发 MyManagedClass::ShowMessage()。

还有更无能的 Native.lib 链接在 Wrapper.dll 和 Wrapper.dll 中引用的 Managed.dll。

谁能帮帮我。

【问题讨论】:

    标签: c# delegates c++-cli unmanaged managed


    【解决方案1】:

    如果您严格从 C++ 环境运行,您将需要host a .NET runtime in your C++ application。如果您在 .NET 环境中运行,则该部分已经完成,您需要将委托传递给 C++ 代码以便稍后调用(顺便说一下,这充满了问题,因为 .NET 运行时直到至少版本 3.0 可以并且将会从你下面垃圾收集委托)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 2014-02-22
      • 1970-01-01
      相关资源
      最近更新 更多