再会
我有一个特定的任务是让 c++ std::map 访问 lua 脚本。所需的脚本语法是 glob["tag"] = "value" 或 glob("tag") = "value"
在研究中,尝试过 luabind 绑定
std::string & glob(const std::string &tag)
{
static std::string value;
return value;
}
...
luabind::module(&state)
[
def("glob", &glob, luabind::return_reference_to(result))
]
但是在运行下面列出的脚本之后
glob("tag") = "asdasd"
print(glob("tag"))
出现错误 [string "glob("tag") = "asdasd"..."]:1: '=' 附近出现意外符号
所以,我正在等待您的建议和意见。
谢谢
更新 2lhf:全局变量数据通过 c++ 部分存储和序列化,必须从 lua 访问。luaState 是在每次脚本执行时创建的,并且在执行之间不存在。解决方案之一是在脚本执行之前创建和填充全局变量表,并在执行后将其与地图同步,但是,我认为它足够慢。因此,将不胜感激通过具有上述语法的 c 函数进行访问。