C++ 调用lua函数问题。

1,通用方法:先加载lua文件然后再执行里面的方法。但是如果lua文件有module即调用模块内的方法则会调用失败。求解决?2,如何加载lua模块而不是文件?3,我的想法... 1,通用方法:先加载lua文件然后再执行里面的方法。但是如果lua文件有module即调用模块内的方法则会调用失败。求解决?
2,如何加载lua模块而不是文件?
3,我的想法:程序运行时,lua虚拟机开启,已经被加载过的lua脚本应该是已经保存在虚拟机里面了,如果后面再次调用应该就不用去加载文件了,而可以直接调用函数。但是这个好像行不通,求解决。
展开
 我来答
空雪梦见
2013-04-21 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1208万
展开全部
1、你是不是要对创建出来的虚拟机调用luaL_openlibs一下?
2、啥叫加载lua模块……送一个包含加载模块的lua语句的字符串到虚拟机里面跑一下是不是能解决
3、我也觉得可以直接调用函数啊,详细说一下“行不通”是什么情况。因为我以前写的东西就是加载一次脚本,然后就一直调用里面的函数了,没遇到问题……
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fg5823820
2013-04-20 · TA获得超过399个赞
知道小有建树答主
回答量:705
采纳率:100%
帮助的人:621万
展开全部
不懂你在说什么,为什么调用模块方法会失败,你怎么导入的模块,给点代码比说一堆话都好解释

另外,已经存在的函数,不需要加载什么文件就能一直用,完全不懂你在搞什么
追问
问题挺多,麻烦留个QQ沟通下。
追答
有空的时候才来这里回答问题,经常有人问很烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李洪亮year
2013-04-21
知道答主
回答量:29
采纳率:0%
帮助的人:11.4万
展开全部
还好 还好
追问
= = 亲你是来打酱油么!
追答
呼呼 混分    飘飘飞过
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咋地要啥没啥
2018-04-15
知道答主
回答量:9
采纳率:100%
帮助的人:1.9万
展开全部
虽然过了很长时间了,但是最近我也在找怎么能解决这个问题。
最后我看到了Lua源码中一个函数是这么写的,应该是可以的。总体上说,就是模块会作为一个Table存放在_G中。所以,先获取这个模块,再在模块中搜索函数,然后就push参数调用。
static int traceback (lua_State *L) {
lua_getfield(L, LUA_GLOBALSINDEX, "debug");
if (!lua_istable(L, -1)) {
lua_pop(L, 1);
return 1;
}
lua_getfield(L, -1, "traceback");
if (!lua_isfunction(L, -1)) {
lua_pop(L, 2);
return 1;
}
lua_pushvalue(L, 1); /* pass error message */
lua_pushinteger(L, 2); /* skip this function and traceback */
lua_call(L, 2, 1); /* call debug.traceback */
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式