它总是返回一个字符串,这是(至少我猜)有人可以帮助的表标识符吗?
这就是我的功能:
function listFiles(dir)
local ffi = require("ffi")
ffi.cdef[[char ** PHYSFS_enumerateFiles ( const char * dir );]]
local liblove = ffi.os == "Windows" and ffi.load("love") or ffi.C
local tb={}
tb=liblove.PHYSFS_enumerateFiles(dir)
return tb
end
它应该返回一个String,其中包含我传递给它的“Dir”的文件内容,但它没有。无法弄清楚原因。
答案 0 :(得分:0)
您应该正确阅读reference。在最后一个字符串跟随NULL指针之后,枚举函数返回指向字符串指针的指针。可以使用char*
将ffi.string
转换为Lua字符串。