【发布时间】:2019-01-16 09:55:18
【问题描述】:
我想知道如何使用 C++ 检查 Lua 中是否存在预加载模块。
我的代码:
#include "lua.hpp"
bool isModuleAvailable(lua_State *L, std::string name)
{
//what should be here?
return false;
}
int main()
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_settop(L, 0);
luaL_dostring(L, "package.preload['A'] = function()\n"
"local a = {}\n"
"return a\n"
"end\n");
luaL_dostring(L, "package.preload['B'] = function()\n"
"local b = {}\n"
"return b\n"
"end\n");
if (isModuleAvailable(L, "A"))
std::cout << "Module Available" << '\n';
else
std::cout << "Module Not Available" << '\n';
if (isModuleAvailable(L, "B"))
std::cout << "Module Available" << '\n';
else
std::cout << "Module Not Available" << '\n';
if (isModuleAvailable(L, "C"))
std::cout << "Module Available" << '\n';
else
std::cout << "Module Not Available" << '\n';
lua_close(L);
}
我得到的结果:
Module Not Available
Module Not Available
Module Not Available
我想要的结果:
Module Available
Module Available
Module Not Available
如何创建isModuleAvailable() 函数以便我的代码可以按预期工作?
【问题讨论】: