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值时就一直报错,请问怎么写 展开
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值时就一直报错,请问怎么写 展开
1个回答
展开全部
返回数组给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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询