在Lua上检索模块对象

我有一个使用Lua运行一些脚本的C程序。我需要像luaopen_socket_core(myLuaState)这样的C代码打开Lua库,由于某些原因我无法从Lua代码中加载模块,比如socket = require "luasocket"

一旦理解了这个程序的设计思路,现在我需要加载一个叫做struct的库,所以我把struct.c添加到了我的项目中。但是当我尝试使用它的函数比如struct.unpack时,运行时会报错说没有叫做struct的全局变量。当然,它是通过luaopen_struct(myLuaState)而不是struct = require "struct"来加载的,这对我来说是禁止的。

有什么建议可以让这个struct变量可用吗?

点赞
用户3204551
用户3204551

请看辅助库中的luaL_requiref,它模仿了从 Lua 调用的 require

你可能直接调用了开放功能,并忘记手动设置那些变量,但是该函数将为您完成所有操作。

2014-08-15 14:49:24