こんにちはを取得するための表では、次のとおりです。アクセスネストした表は、私はC. へのLuaから送られた、ネストされたテーブルにアクセスしようとしていた値
arg =
{
MagicNumber = {MagicNumber, 0},
ProdNum = {ProdNum, 1},
LetterR = {LetterR, 0xc},
Revision = {Revision, 0xd},
Space1 = {Space1, 0xe},
MnfctrCode = {MnfctrCode, 0xf},
Hyphen1 = {Hyphen1, 0x12},
ZeroCode = {ZeroCode, 0x13},
Hyphen2 = {Hyphen2, 0x15},
MnfctrMnth = {MnfctrMnth, 0x16},
MnfctrYear = {MnfctrYear, 0x18},
SerialNum = {SerialNum, 0x1a},
Space2 = {Space2, 0x1e},
ChkSum = {ChkSum, 0x1f},
}
の表は、内部の両方の整数値であり、テーブルのキーは文字列です。私のコードスニペットはollowsの通りです:私は戻って取得値が0x0
あるので
lua_pushnil(L);
while(lua_next(L, -2) != 0)
{
field = lua_tostring(L, -2);
printf("\n %d field = %s", i, field);
wrData[i-1] = lua_tonumber(L,-1);
printf("\n data = 0x%x", wrData[i-1]);
lua_pop(L, -1);
i++;
}
は、私が何をしないのです。
'lua_tonumber(L、-1)あなたは、インデックス' -1'でテーブルを持っているように '間違っている、いない番号(これらは' arg'テーブルから、キーと値のペアからの値です) –
' lua_pop(L、-1) 'は間違っています:ポップするスロットの数で、スロットの数は必要ありません。 – lhf
答えをありがとう、私はここから答えを得た:http://stackoverflow.com/questions/27037854/lua-c-read-nested-tables – SanR