最近用cocos2dx 出现一个访问冲突的问题求解

之前有一个项目是使用cocos2dx lua 编写的
最近在尝试使用C#,链接C++最后调用lua的方式实现,UI用C#,内部逻辑使用C++和lua
然而最近发现一个严重的问题,就是在lua调用C++导出类的子函数的时候,如果返回值是空没有任何问题
但是如果返回值为自定义的类指针
在lua模块的tolua_pushusertype_internal函数的40行的lua_rawget函数会出现访问冲突如下所示
0xC0000005: 读取位置 0x0000001C 时发生访问冲突

使用了各种方式也无法解决,一开始我以为是多线程调用导致luavm崩溃了,但是在C#端,使用的是winform的timer循环调用的,这个类应该是单线程的,
而我重新只在C++端调用,则完全正常。
这个问题一直困扰了我很久,希望有大神知道缘由的能出来指点一下,拜谢了。
对了我使用的版本是cocos2d-x-3.13

你这个我问题牵扯到3种语言互相调用的问题啊,好复杂。