public static void lua_pushstdcallcfunction(IntPtr L, lua_CSFunction function, int n = 0) //[-0, +1, m] { #if XLUA_GENERAL || (UNITY_WSA && !UNITY_EDITOR) GCHandle.Alloc(function); #endif IntPtr fn = Marshal.GetFunctionPointerForDelegate(function); xlua_push_csharp_function(L, fn, n); }
private void AddSearcherEx(lua_CSFunction searcher, int index) { object obj = (LuaEnv)this; Type type = obj.GetType(); type = type.BaseType; MethodInfo mf = type.GetMethod("AddSearcher", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); mf.Invoke(obj, new object[] { searcher, index }); }
//将function推到Lua虚拟机栈 public static void lua_pushstdcallcfunction(IntPtr L, lua_CSFunction function, int n = 0) //[-0, +1, m] { #if XLUA_GENERAL || (UNITY_WSA && !UNITY_EDITOR) GCHandle.Alloc(function); #endif //这个还做了一下处理. //marshal的获取代理的函数指针,最后把这个指针加到lua虚拟机的栈里面. IntPtr fn = Marshal.GetFunctionPointerForDelegate(function); xlua_push_csharp_function(L, fn, n); }
public static extern IntPtr lua_atpanic(IntPtr L, lua_CSFunction panicf);
public static extern int lua_VM_SetPrint(lua_CSFunction func);
public static extern int lua_VM_SetDefaultLoader(lua_CSFunction func);
public static void lua_pushstdcallcfunction(IntPtr L, lua_CSFunction function, int n = 0) //[-0, +1, m] { IntPtr fn = Marshal.GetFunctionPointerForDelegate(function); xlua_push_csharp_function(L, fn, n); }
public static extern void lua_atpanic(IntPtr L, lua_CSFunction panicf);
public static void lua_pushstdcallcfunction(IntPtr L, lua_CSFunction function, int n = 0)//[-0, +1, m] { IntPtr fn = Marshal.GetFunctionPointerForDelegate(function); xlua_push_csharp_function(L, fn, n); }
public static void RegistFunction(IntPtr luaState, string libName, string functionName, lua_CSFunction function) { MDebug.Assert(ms_CurrntLibName == libName , "XLua" , "ms_CurrntLibName == libName"); Lua.xlua_pushasciistring(luaState, functionName); Lua.lua_pushstdcallcfunction(luaState, function); Lua.lua_rawset(luaState, -3); }
public static void lua_pushstdcallcfunction(IntPtr L, lua_CSFunction function)//[-0, +1, m] { lua_pushstdcallcfunction(L, function, 0); }