将Visual C ++委托传递给本机C ++类

时间:2012-02-06 20:24:29

标签: c++ visual-c++ delegates c++-cli

我有一个本机类,它需要构造函数中的函数指针。我试过搜索论坛,但找不到我想要的东西。

本机类看起来像这样:

class NativeClass{
    NativeClass(std::string(*callback)(std::string args)){
    //native code goes here
    }
};

传递代表的最佳方式是什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您需要使用Marshal.GetFunctionPointerForDelegate()来实现此目标。

请注意,这将返回一个使用stdcall调用约定的函数指针。您可以使用委托声明中的UnmanagedFunctionPointer属性指定不同的调用约定。