Ik doe verwoedde pogingen om een array/table uit een luascript in C te krijgen. Mijn C-testcode ziet er zo uit:
test.lua ziet er zo uit:
mycooltable is voor later zorg, allereerst probeer ik mytable uit te lezen. Persoonlijk verwachtte ik na het runnen van het c-file dat er "Found a number: 2" op mijn scherm zou verschijnen, maar helaas, er verschijnt "Found a number: 0".
Helaas is google in deze mijn vriend niet: ik heb geen werkende oplossing kunnen vinden, en ook in het lua-mailinglistarchief kon ik niets bruikbaars vinden. De meeste resultaten gaan over oude lua-versies, of stippen mijn probleem niet aan.
Wie helpt?
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| #include <stdio.h> #include <stdlib.h> #include "lua.h" lua_State *L; int main(int argc, char *argv[]) { L = lua_open(); lua_dofile(L,"test.lua"); lua_getglobal(L,"mytable"); if (!lua_istable(L,1)) printf("No Table.\n"); else { lua_rawgeti(L,1,2); if (lua_isnumber(L,-1)) { printf("Found a number: "); printf("%i\n",lua_tonumber(L,-1)); } else { printf("Found a %s\n",lua_typename(L,lua_type(L,-1))); } } lua_close(L); system("pause"); return 0; } |
test.lua ziet er zo uit:
Lua:
1
2
| mytable={1,2,3} mycooltable = {{1,2,3},{4,5,6},{7,8,9}} |
mycooltable is voor later zorg, allereerst probeer ik mytable uit te lezen. Persoonlijk verwachtte ik na het runnen van het c-file dat er "Found a number: 2" op mijn scherm zou verschijnen, maar helaas, er verschijnt "Found a number: 0".
Helaas is google in deze mijn vriend niet: ik heb geen werkende oplossing kunnen vinden, en ook in het lua-mailinglistarchief kon ik niets bruikbaars vinden. De meeste resultaten gaan over oude lua-versies, of stippen mijn probleem niet aan.
Wie helpt?