如何将数据从非托管代码推送到托管代码?

Jak*_* S. 4 unmanaged c++-cli managed

我正在使用C++/CLI Wrapper从C#框架( - >托管)访问纯C++库( - >非托管).我想构建一种机制,使C++库能够将有关其状态的信息推送到框架.根据我的理解,这意味着我必须在某些时候至少从非托管代码调用托管函数.这是可能的,我怎样才能做到这一点?

非常感谢您的帮助!

最好的问候,雅各布

Han*_*ant 7

使用委托让非托管代码调用托管方法.Marshal :: GetFunctionPointerForDelegate()创建一个负责转换的存根,支持调用实例方法.您可以将返回的指针强制转换为非托管代码可使用的函数指针.

您将在此答案中找到完整的代码示例.