Итак, сначала я загружаю нужную мне DLL
local ffi = require("ffi")
local theDLL = ffi.load("thisDLL")
в ffi cdef у меня есть два разных типа структур
ffi.cdef [[
typedef struct StructSession StructSession;
typedef struct {
/*
* begin_proj callback
*/
bool (__cdecl *begin_proj)(char *proj);
/*
* save_proj_state
*/
bool (__cdecl *save_proj_state)(unsigned char **buffer, int *len);
} StructCallbacks;
У меня тоже есть эта функция в cdef
__declspec(dllexport) int __cdecl start_session(StructSession **session,
StructCallbacks *cb);
Теперь я хотел бы назвать эту функцию
print(theDLL.start_session(a,b))
Очевидно, что переменные a и b являются заполнителями, вопрос в том, как передать структуры, которые нужны функции? И скажем, мы получили работу StructSession, будет ли возможность обратного вызова функции ВНУТРИ LuaJIT для StructCallbacks?