1
你好,我真的爲這個看似簡單的任務難住。 我可以訪問傳遞給C函數的表的屬性,但不能訪問我在其中創建的任何子表的成員。如何從C中的lua訪問多維表?
基本上我想簡單地能夠從屬性表中提取字符串,所以我可以根據用戶的期望創建一個「輪子」。
這裏是我到目前爲止(試過這麼多我的大腦是炒)
的Lua方:
--Function
createSomething("wheel", { canInflate = true, properties = { "large", "full" } })
C面:
//I can retrieve any value easily within that table, but cannot seem to extract the table
//Within it named "properties", i can access the table, but cannot extract the strings inside
if(lua_istable(L, 2)) {
lua_getfield(L, 2, "canInflate"); // Let's extract the value for the key 'someKey'. Pushes the value on the top of the stack
static int canInflate = lua_toboolean(L, -1); // get the value of bool now at the top of stack (index: -1)
//printf("can inflate is %d\n", canInflate);
//lua_pop(L, 1); // pop the value now that we are done with it
}
//try to get the properties table
if (lua_istable(L, 2)) {
lua_getfield(L, 2, "properties");
const char *str = lua_tostring(L, -1);
printf("properties 1 = %s\n", str); // NULL
lua_pop(L, 2);
}
任何幫助的這將不勝感激
事實上,工作,謝謝一堆!知道這是簡單的 – PersuitOfPerfection 2012-07-13 14:47:52
@丹:然後接受這個答案,如果它解決了你的問題。這是左邊的綠色複選標記。 – 2012-07-13 16:04:07