Tencent / xLua

xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.
Other
9.42k stars 2.46k forks source link

能请教一下,为什么把lua_setfiled给屏蔽掉?? #1146

Closed lybmccree closed 5 months ago

lybmccree commented 5 months ago

如果我想在cs层往luaState塞一个自定义table,然后需要对这个table 进行setfiled,然后再把函数塞进去,应该怎么做呢?tolua可以操作,但是xlua就屏蔽掉接口。

chexiongsheng commented 5 months ago

luaState概念上是一个携程/用户态线程。携程不能往里面做什么“塞table”操作。 你说的应该是往虚拟机的全局table那加个table。这可以通过luaEnv.Global实现。

lybmccree commented 5 months ago

luaState概念上是一个携程/用户态线程。携程不能往里面做什么“塞table”操作。 你说的应该是往虚拟机的全局table那加个table。这可以通过luaEnv.Global实现。

对的,就是往虚拟机里面全局table塞一个key tolua可以LuaDLL.lua_setfield(L, idx, key);设置一个成员变量, 举例子_G["network"] = {[“funcName”] = function() end} 我拿到一个 network 的表, 但也无法 使用LuaAPI.lua_setfiled(),因为这个接口没有。 求大佬再指导指导

chexiongsheng commented 5 months ago

都封装好更简单的接口可以直接用,你为啥要直接访问lua的接口? 什么接口看我上个回复

lybmccree commented 5 months ago

都封装好更简单的接口可以直接用,你为啥要直接访问lua的接口? 什么接口看我上个回复

tolua转xlua,有些业务本来是直接操作lua栈塞到虚拟机,类似以前C++跟lua交互那种,用到了LuaAPI.lua_setfiled跟getfiled,遇到困难