我正在用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/