我正在用monotouch编写一个应用程序,该应用程序也利用了C++库,因此我一直在使用p / inoke从C#调用C++函数来完成各种事情。但是,在一些情况下,我希望C++代码改为调用C#函数。

所以像:

void CPlusPlusFunction(Pointer* stuff)
{
    //do stuff

    CSharpFunction(*stuff);
}

这有可能吗,如果可以的话我该怎么做?也许除了调用一个函数外,还可以将委托(delegate)传递给C++进行调用,如果是这样,它将如何工作?我真正想做的就是在函数中立即将一些信息传递给C#。

谢谢你的帮助!

最佳答案

是的你可以。但是,用于为设备编译的MonoTouch代码的AOT编译器必须注意此类回调,以便可以生成适当的代码。因此,您的回调必须使用 [MonoPInvokeCallback] 属性进行修饰。

http://developer.xamarin.com/guides/ios/advanced_topics/limitations/#Reverse_Callbacks

关于c# - 从C++调用C#函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7058254/

10-17 02:45