2012-08-01 28 views
1

我有一个问题,当我做这样的从功能

luaL_loadstring(luaState, "return 3, 4, 5"); 

我对栈3个值,但是当我尝试调用函数

luaL_loadstring(luaState, vhs:get_sender_resolutions()); 

get_sender_resolutions = {function (self) 
    local rresc = self.iface:GetSenderResolutionCount() 
    local resolutions = {} 
    for i=0,rresc-1 do 
     local res = self.iface:GetSenderResolution(i) 
     printdump (res, "#"..i.." = ") 
     table.insert(resolutions, res) 
    end 
return 6, 7, 8 

我Lua的返回值在堆栈上只有1个值 - 函数?我想念什么?

+1

您使用3(三!)种语言标记了您的问题,但代码的语法不匹配其中两个。我不确定你的问题可能与所有3种语言有关。你需要重新陈述你的问题或解释为什么它被标记为所有3种语言? – YePhIcK 2012-08-01 18:04:02

+1

@YePhIcK在他的问题中提到的'luaL_loadstring'和堆栈与Lua和C(或潜在的C++)之间的绑定有关。跟随Lua的人们有能力回答这个问题。搜索人员可以用于过滤包含这些标签的帖子。 – 2012-08-01 18:17:54

+4

上面的get_sender_resolutions代码不完整;有一件事情是没有封闭的'{';功能也没有'end'。向我们展示真实的代码。 – 2012-08-01 19:29:58

回答

0

luaL_loadstring想要加载一个字符串;你的第二个电话似乎是呼叫luaL_loadstring与一个表参数(或功能,目前还不清楚)。