小编hal*_*alm的帖子

将多维数组从C返回到Lua

我的问题与此类似: 如何使用C API创建嵌套的Lua表

我以为我明白这个答案,但我仍然有问题.

我有一系列我想要返回的对象.

        const char * pushlist[] = {
              "status", "cmdsequence", "timestamp", "gain",
        };
        int nItems = sizeof(pushlist) / sizeof(char *);
        int iDepth = -(1 + nItems);

        // //
        // What we want to do is essentially push an array of tables.
        // The tables have keys (see pushlist above) and values.
        // The array is indexed by integers from 1 through N.
        //
        lua_newtable( L );
        for( Json::Value::UInt i = 0; i != totFrames; i++ )
        { …
Run Code Online (Sandbox Code Playgroud)

c++ lua

2
推荐指数
1
解决办法
2332
查看次数

将C#集合传递回Lua

我有一个用C#编写的DLL,由Lua脚本使用.脚本"需要CLRPackage".到目前为止,我可以使用load_assembly()import_type()来获取DLL中的类和方法.我传回简单的值和字符串,这一切都有效.

不,我需要将一个通用集合传递给Lua.我相信Lua会看到的是一个表,但我不清楚如何在C#中创建该表并将其传回.

似乎是一个类似的问题,但我没有看到如何实现它.是否有另一种解决方案或一个带有剥离代码片段的解决方案?

c# lua luainterface

1
推荐指数
1
解决办法
2459
查看次数

Reading Lua nested tables in C++

我正在创建一个将从Lua调用的C/C++函数.我的函数必须调用一个库函数,其签名是这样的:

void libFunction( int val1, int val2, tSETTINGS * pSettings );
Run Code Online (Sandbox Code Playgroud)

我给了这些C/C++结构.

typedef struct
{
  int cmd;
  int arg;
} tCOMMAND;
typedef struct
{
  int numberCommands;
  int id;
  tCOMMAND commands[1];
} tSETTINGS;
Run Code Online (Sandbox Code Playgroud)

也许我的想法在这方面都是错的,但是从Lua我这样称呼:

id   = 42
val1 = 1
val2 = 2
cmd1 = { 3, 4 }
cmd2 = { 5, 6 }
commands = { cmd1, cmd2 }
settings = { #commands, id, commands }
mycfunction( val1, val2, settings )
Run Code Online (Sandbox Code Playgroud)

我确信我仍然不理解从C++引用的Lua堆栈,因为我正在尝试的东西不起作用.我的解决方案能够检索val1,val2,#command和id,但是当我尝试检索命令[0]和命令[ 1 ]时,我分别得到{1,2}和{ 2,42 }.

我的C++基本上就是这样(对于这个样本我正在丢弃这些值).我已经检索了val1和val2:

int stkNdx …
Run Code Online (Sandbox Code Playgroud)

c c++ lua nested-table lua-table

1
推荐指数
1
解决办法
3063
查看次数

标签 统计

lua ×3

c++ ×2

c ×1

c# ×1

lua-table ×1

luainterface ×1

nested-table ×1