簡體   English   中英

將C結構指針傳遞給lua腳本

[英]Passing C struct pointer to lua script

我想知道是否有一種方法可以將結構指針傳遞給lua腳本,並從lua到達其成員而無需復制(出於讀寫目的)。

因此,例如,是否有可能直接通過其指針覆蓋結構成員?

(我正在使用luajit)

除了蒂姆的答案,您還可以輕松獲取用戶數據 您最終不會在Lua堆棧中得到數據的副本,您推送到Lua的只是一個指針。

Lua不了解此指針中的內容,是否仍然指向有效內存,或如何訪問此指針中的任何對象,因此您必須自己在C中處理所有這些。我通常將指針發送至列表中的一個項目,因此,如果存在從列表中刪除條目的風險,我首先在列表上進行迭代以驗證指針(如果列表較短,則沒什么大不了的)。 要在Lua中訪問指針中的項,您需要在C中編寫可從Lua調用的get / set函數。

首先,這是有關推送和檢索lightuserdata的條目:

看到已經為luajit標記了它,您可以將輕量用戶數據(如其他人所提到的)與FFI結合使用以直接訪問結構成員,請參見此處的教程: http : //luajit.org/ext_ffi_tutorial.html

這樣做的方法是使用lua用戶數據。 這里有幾個示例: link另一個link

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM