它的工作原理,如果一个C函数调用Lua函数当Lua调用C API 和LUA函数调用C API,longjmp的错误如何获得LUA脚本C功能
lua_yieldk,lua_callk和lua_pcallk 如何它工作吗?
我的C代码:
int trace(lua_State *L)
{
const char *str = luaL_checkstring(L, 1);
printf("%d:%s\n", GetTickCount(), str);
return 1;
}
int pause(lua_State *L)
{
printf("pause");
return lua_yield(L, 0);
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_pushcfunction(L, pause);
lua_setglobal(L, "pause");
lua_pushcfunction(L, trace);
lua_setglobal(L, "trace");
if (luaL_loadfile(L, "test.lua"))
error(L, "cannot run script %s\n", lua_tostring(L,-1));
lua_resume(L, NULL, 0);
lua_getglobal(L, "t");
lua_pcallk(L, 0, 0, 0, 0, 0);
lua_resume(L, NULL, 0);
lua_resume(L, NULL, 0);
lua_resume(L, NULL, 0);
lua_resume(L, NULL, 0);
lua_close(L);
getchar();
return 0;
}
Lua代码
function t()
pause(2)
pause(2)
pause(2)
pause(2)
end
非常感谢你....我现在可以睡了^^ – user1790687 2013-05-08 05:25:18