LUA 读取C#中返回值为数组的函数

请教大师们,一个问题:我在C#中写了一个返回值为数组的函数float[]data_handle1(),想在Lua中调用此函数?在lua中如何操作读取这个函数的返回值呢?C... 请教大师们,一个问题:我在C#中写了一个返回值为数组的函数float[] data_handle1() ,想在Lua中调用此函数?在lua 中如何操作读取这个函数的返回值呢?C# 的函数具体代码如下:
public float[] data_handle1() //串口20个字节回复字节解析
{
………………………………………………………………
float[] i = new float[8];

int p = 0;
for (int loop = 2; loop < 18; loop++)
{
i[p] = data[loop] * 256 + data[loop + 1];
loop = loop + 1;
p++;

}
return i;

}
在lua中的代码如下:
local k={n=8}
local t={n=8}
k = data_handle1()

for i=1,8,1 do

t[i]=k[i]
MessageBox("未收到返113351")
end
运行到读取K值时就一直报错,请问怎么写
展开
 我来答
百度网友ca6ad38
2015-06-20 · TA获得超过157个赞
知道小有建树答主
回答量:237
采纳率:91%
帮助的人:91.6万
展开全部

返回数组给lua并不是这样吧,应该是返回一个 table

我记得应该是

lua_newtable


然后往这个table里插入。

还有你确定你这个C#的函数注册了吗。我记得注册到lua里的函数定义应该不是这样的


函数应该是返回一个 int 值,表示该函数返回多少个返回值。

//定义一个C函数
//如这个函数,返回 1 一个返回值,值为 9
int Test(lua_State* l)  
{  
    lua_pushinteger(l, 9); 
    return 1;  
}
//将这个函数注册到 lua 内
lua_register(L, "Test", Test);

这样 lua 内就可以使用 
local k = Test()

结果 k = 9
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式