IL2CPP MonoPInvokeCallback 错误

NotSupportedException: To marshal a manged method, please add
an attribute named 'MonoPInvokeCallback' to the method definition

NotSupportedException: IL2CPP does not support marshaling
delegates that point to instance methods to native code.

出现原因

把自定义函数传递给 C++非托管代码

解决办法

  1. 定义特性
internal class MonoPInvokeCallbackAttribute : Attribute
{
    public MonoPInvokeCallbackAttribute() { }
}
  1. 添加特性到 需要传递给c++的函数上面
[MonoPInvokeCallback]
internal static void OnResult( IntPtr param )
{
    OnResultWithInfo( param, false, 0 );
}

例子 https://www.jianshu.com/p/f8ee0e02cdb2
找到的大神回答 https://garry.tv/2018/02/15/steamworks-and-il2cpp/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容