我是Lua的新手,並試圖理解一些基礎知識。我想了解的是將Lua綁定到C++實例。從零開始的Lua/C++綁定
我不感興趣的第三方庫,我想在一個更根本的層面來理解這一點 - 謝謝:)
這裏是我的問題:
- 我根據我讀的假設,Lua只能綁定到靜態C函數。它是否正確?
- 這是否意味着要綁定一個C++類的實例,我首先需要爲每個方法和屬性getter/setter編寫靜態函數,並接受一個實例指針作爲參數。
- 我會註冊這些函數與Lua。
- 我會給Lua一個指向C++類實例的指針。
- 從Lua我會調用其中一個註冊函數,傳遞C++實例指針。
- 靜態函數解引用指針,調用等效方法。
這是否有意義?還是我得到了錯誤?
感謝您閱讀這篇文章。
綁定不同的語言通常是通過一個C接口來完成的(ABI更好地定義了C)。我對lua瞭解細節不夠熟悉,但我的建議是選擇圖書館解決方案。您將重新發明輪子,讓它與現有解決方案一樣圓滿,這可能不是微不足道的。至少,請看看這些庫的功能。 –
謝謝,但我特別想了解Lua的原理,以便我不想(不允許)使用第三方庫的用例。我研究過幾個圖書館,但我只關心這個工作的核心原則,而不能從圖書館那裏瞭解這些(高度抽象的,沉重的閱讀)。 – user1654794
許多利用Lua-C++綁定的第三方庫都是開源的。你總是可以看看他們是如何做的,以瞭解他們。 *儘管如此,警惕虛位以待。 –