1

Lightuserdata は userdata とは異なるので、どうすればよいですか? lua での lightuserdata の操作を意味します。他のデータ型に変換できないようです。

私の場合の1つ:

私の C ライブラリは、「c_pointer」という名前の C ポインター、別名 lightuserdata を Lua に返します。

my_pointer = c_pointer +4

'my_pointer' を C ライブラリに戻します。「c_pointer」では何もできないので、「c_pointer + 4」という式は無効です。

これに対するいくつかの実用的な解決策があるのだろうか?

4

2 に答える 2

0

Plain Lua にはポインター演算がないため、Doug Currieが述べたように、C 側でポインター演算を行う必要があります。

一方、LuaJITは ( FFIライブラリを介して) ポインター演算を実行できるため、代わりにそれを使用することを検討してください。

于 2013-05-07T00:54:22.043 に答える