c++ - 将 Visual C++ 委托(delegate)传递给 native C++ 类

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

我有一个 native 类,它需要在构造函数中使用函数指针。我尝试搜索论坛,但找不到我想要的内容。

native 类如下所示:

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

传递委托(delegate)的最佳方式是什么?任何帮助将不胜感激。

最佳答案

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

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

关于c++ - 将 Visual C++ 委托(delegate)传递给 native C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166752/

相关文章:

html - 具有高 dpi (150%) 的 CHtmlView 中的网页显示不正确

c++ - 使用 C++ 更新 XML 节点值

c# - 检查方法与给定委托(delegate)的兼容性?

objective-c - 标准委托(delegate)模式似乎与委托(delegate)目的不一致

iphone - 无法设置 View Controller 的委托(delegate)

c++ - 自动和复制构造函数 : what's wrong?

c++ - vector C++ 的 sizeof 和 .size() 之间的区别

使用枚举类的 C++11 标准符合位掩码

c++ - initializer_list 在 VC10 中不起作用

c++ - getadapteraddresses 函数是否默认支持mediasense 函数?