我正在使用Lua作爲腳本語言編寫的使用C++編寫的項目。 爲了便於調試,我們實現了一個網絡調試器,它接收Lua代碼,運行它,在Json中對返回值進行編碼並將該字符串發送回去。從C api訪問userdata中的Lua變量
我設法實現了表,但現在我卡在存儲在userdata中的變量。 例如我有這樣的Lua代碼:
Elements.Avatar.testVar = 5
Elements.testVar = 15
return Elements
// result
{
"result0": "{Application:userdata; Avatar:userdata; Physics:userdata; testVar:15; }"
}
Application
,Avatar
和Physics
是已經用C創建的對象++。然而,兩個testVars
已在上面的腳本中創建。 Elements
是一個表,所以我可以列出所有元素,但Avatar.testVar
似乎被隱藏,因爲Avatar
是LUA_TUSERDATA
。
有沒有人有一個想法如何我可以檢測已添加到用戶數據在Lua中的變量?
好的,這是非常有幫助的。我試圖從C++端列出這些值,所以這不是問題。我正在使用OOLUA來使實現lua變得更容易,並且這導致我認爲將值存儲在用戶數據對象旁邊的選項是該語言的固有選項。 這意味着我必須檢查OOLUA提供的綁定代碼,以瞭解如何存儲我的Avatar.testVar? –
@ user2626359:那麼,大概'testVar'是在你使用OOLUA公開的任何C++類中的C++變量的名稱,是的? –