假设有以下C代码: struct Foo { int dummy; }int tryToAllocateFoo(Foo ** dest); …如何在LuaJIT中进行以下操作? Foo * pFoo = NULL;tryToAllocateFoo(pFoo); local ffi = require 'ffi'ffi.cdef [[ struct Foo { int dummy; }; int t
struct Foo { int dummy; } int tryToAllocateFoo(Foo ** dest);
…如何在LuaJIT中进行以下操作?
Foo * pFoo = NULL; tryToAllocateFoo(&pFoo);
local ffi = require 'ffi' ffi.cdef [[ struct Foo { int dummy; }; int tryToAllocateFoo(Foo ** dest); ]] local theDll = ffi.load(dllName) local pFoo = ffi.new 'struct Foo *[1]' local ok = theDll.tryToAllocateFoo(pFoo) if ok == 0 then -- Assuming it returns 0 on success print('dummy ==', pFoo[0].dummy) end