2010-09-25 104 views
0

我怎樣才能獲得所有的C API函數與Lua的列表? 例如,有一個遊戲(孤島危機),很多C函數,其 可以從C到Lua獲取API信息?

Lua中被稱爲: g_gameRules.game:FunctionInC()

有很多功能,但我知道我如何能得到所有可用的功能?

+0

是不是有某種文檔的可用? – ThiefMaster 2011-11-17 23:48:24

回答

1

如果g_gameRules.game是一個表,遍歷它尋找函數。如果它是一個用戶數據,請查看其metatable。 (如果它是一個表格)

1

可能有也可能沒有簡單的方法來枚舉所有的C函數。

g_gameRules.game實際上可能包含的功能,但這是不尋常的。類似下面的內容將列出這些功能。

for k,v in pairs(g_gameRules.game) do if print(k,v) end 

更可能g_gameRules.game將有薈萃表的__index條目,要麼是一個表或一個功能。如果__index條目是一個表格,下面將列出所有功能。

for k,v in pairs(getmetatable(g_gameRules.game).__index) do print(k,v) end 

這隻會確定函數的名稱,參數列表仍然是未知的。

但是,如果元表的__index值是一個函數,那麼列出函數將不會有簡單的方法。

1
for i,v in pairs(getmetatable(g_gameRules).__index) do 
    System.LogAlways(i.." : "..v); 
end 

OR

for i,v in pairs(g_gameRules) do 
    System.LogAlways(i.." : "..v); 
end