关于cocos调用lua函数的问题,求教

小弟用cocos调用lua函数使用默认的lua引擎 函数如下
void UIMgr::ShowTest()
{

static bool shownum = false;
if(!shownum)
{
    std::string path2 = CCFileUtils::sharedFileUtils()->fullPathForFilename("luaui/ShowTest.lua");
    m_pluaEngine->executeScriptFile(path2.c_str());
    shownum = true;
}

lua_getglobal(m_pluaEngine->getLuaStack()->getLuaState(), "ShowDZ");

lua_call(m_pluaEngine->getLuaStack()->getLuaState(), 0, 0);

}

为什么第二次调用这个函数 lua函数没反应呢? 是在lua_call之后需要做什么吗?

这个就等同于require,是有缓存的,所以通常返回一个函数,然后调用。而不是自己把东西写到lua文件中。

啥意思~!其实 我的问题可以是描述的不请,我只是希望每次调用ShowTest的时候lua都可以调用到ShowDZ
我也尝试过在lua_call之后m_pluaEngine->getLuaStack()->clean();
但是还是没有效果第二次进不来

第二次调用之前重启过lua vm?你每次都先重新加载ShowTest.lua试试

xxx.lua


print("这里只会打印一次")
local function foo()
    print("可以打印无数次")
end
return foo

上面的xxx.lua 如果想要打印多次,那么就用第二次的,返回一个函数,然后调用这个函数就OK了。