我正在努力将 libcurl 包装在 luajit ffi 中。我的终结器没有被调用。
local ffi = require("ffi")
ffi.cdef [[
typedef struct{} CURL;
CURL * curl_easy_init();
void curl_easy_cleanup(CURL *);
]]
local CURL_lib = ffi.load("../lib/libcurl.so")
local CURL_CTX
local CURL_CTX_mt = {
__gc = function() print "finalizing"; CURL_lib.curl_easy_cleanup(CURL_CTX); end
}
ffi.metatype("CURL", CURL_CTX_mt)
CURL_CTX = ffi.new("CURL[1]")
CURL_CTX = CURL_lib.curl_easy_init();
print "done"
我在这里想念什么?:D
BTW CURL 被定义为typedef void CURL;
我确定我尝试这样做的方式不够干净。有什么建议吗?
尤里卡!:自我回答——如果有任何明显的问题,仍然对评论感兴趣。