static int DebugProxy(IntPtr L) { try { int parameterCount = LuaDLL.lua_gettop(L); if (parameterCount == 1 && TypeChecker.CheckTypes <int>(L, 1)) { int number = (int)LuaDLL.luaL_checknumber(L, 1); Util_xia.DebugProxy(number); return(1); } else if (parameterCount == 1 && TypeChecker.CheckTypes <string>(L, 1)) { string str = ToLua.ToString(L, 1); Util_xia.DebugProxy(str); return(1); } object obj1 = ToLua.ToVarObject(L, 1); byte[] bytes = ToLua.ToByteBuffer(L, 1); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int GetCRC(IntPtr L) { try { int parameterCount = LuaDLL.lua_gettop(L); if (parameterCount == 1 && TypeChecker.CheckTypes <byte[]>(L, 1)) { byte[] bytes = ToLua.CheckByteBuffer(L, 1); ushort short16 = Util_xia.GetCRC(bytes); LuaDLL.lua_pushnumber(L, short16); return(1); } else if (parameterCount == 1 && TypeChecker.CheckTypes <int[]>(L, 1)) { int[] numbers = ToLua.CheckNumberArray <int>(L, 1); List <byte> bytes = new List <byte>(); for (int i = 0; i < numbers.Length; i++) { bytes.Add(Convert.ToByte(numbers[i])); } ushort short16 = Util_xia.GetCRC(bytes.ToArray()); LuaDLL.lua_pushnumber(L, short16); return(1); } else if (parameterCount == 2 && TypeChecker.CheckTypes <int[], int>(L, 1)) { int[] numbers = ToLua.CheckNumberArray <int>(L, 1); int option = (int)LuaDLL.luaL_checknumber(L, 2); List <byte> bytes = new List <byte>(); for (int i = 0; i < numbers.Length; i++) { bytes.Add(Convert.ToByte(numbers[i])); } ushort short16 = Util_xia.GetCRC(bytes.ToArray(), option); LuaDLL.lua_pushnumber(L, short16); return(1); } else if (parameterCount == 2 && TypeChecker.CheckTypes <byte[], int>(L, 1)) { byte[] bytes = ToLua.CheckByteBuffer(L, 1); int option = (int)LuaDLL.luaL_checknumber(L, 2); ushort short16 = Util_xia.GetCRC(bytes, option); LuaDLL.lua_pushnumber(L, short16); return(1); } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int DecompressFile(IntPtr L)//这里传进来的是一个路径 { try { int parameterCount = LuaDLL.lua_gettop(L); if (parameterCount == 1 && TypeChecker.CheckTypes <string>(L, 1)) { string path = ToLua.ToString(L, 1); byte[] bytes = Util_xia.DecompressFile(path); ToLua.PushByteBuffer(L, bytes); return(1); } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int CompressFile(IntPtr L) { try { Util.DebugProxy("压缩文件调用"); int parameterCount = LuaDLL.lua_gettop(L); if (parameterCount == 2 && TypeChecker.CheckTypes <int[], string>(L, 1)) { int[] numbers = ToLua.CheckNumberArray <int>(L, 1); string path = ToLua.ToString(L, 2); List <byte> bytes = new List <byte>(); for (int i = 0; i < numbers.Length; i++) { bytes.Add(Convert.ToByte(numbers[i])); } Util_xia.CompressFile(bytes.ToArray(), path); return(1); } else if (parameterCount == 2 && TypeChecker.CheckTypes <byte[], string>(L, 1)) { byte[] bytes = ToLua.ToByteBuffer(L, 1); string path = ToLua.ToString(L, 2); Util_xia.CompressFile(bytes, path); return(1); } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int GetMD5(IntPtr L) { try { int parameterCount = LuaDLL.lua_gettop(L); if (parameterCount == 1 && TypeChecker.CheckTypes <int[]>(L, 1)) { int[] numbers = ToLua.CheckNumberArray <int>(L, 1); List <byte> bytes = new List <byte>(); for (int i = 0; i < numbers.Length; i++) { bytes.Add(Convert.ToByte(numbers[i])); } string str = Util_xia.GetMD5(bytes.ToArray()); LuaDLL.lua_pushstring(L, str); return(1); } else if (parameterCount == 1 && TypeChecker.CheckTypes <byte[]>(L, 1)) { byte[] bytes = ToLua.ToByteBuffer(L, 1); string str = Util_xia.GetMD5(bytes); LuaDLL.lua_pushstring(L, str); return(1); } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }