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

时间:2022-08-30 19:43:30
请教大师们,一个问题:我在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值时就一直报错,请问怎么写

6 个解决方案

#1


你用的是哪种实现?
lua默认又不支持C#

#2


为什么没人回复啊?我急啊 LUA 读取C#中返回值为数组的函数

#3


哦 ,我在C#中声明了调用lua的,我试过了,如果C#中函数返回不是数组,而是一个数,是可以实现的,调试没有问题,所以应该是Lua中这个k = data_handle1()地方出了问题,可是我不知道怎么改Lua

#4


我不清楚你是怎么实现从C#调用lua的
但你写的data_handle1,返回的数组是托管内存的引用,怎么可能能直接用?

#5


那Lua这部分怎么写的?

#6


该回复于2015-06-19 17:03:08被管理员删除

#1


你用的是哪种实现?
lua默认又不支持C#

#2


为什么没人回复啊?我急啊 LUA 读取C#中返回值为数组的函数

#3


哦 ,我在C#中声明了调用lua的,我试过了,如果C#中函数返回不是数组,而是一个数,是可以实现的,调试没有问题,所以应该是Lua中这个k = data_handle1()地方出了问题,可是我不知道怎么改Lua

#4


我不清楚你是怎么实现从C#调用lua的
但你写的data_handle1,返回的数组是托管内存的引用,怎么可能能直接用?

#5


那Lua这部分怎么写的?

#6


该回复于2015-06-19 17:03:08被管理员删除