使 LuaJIT ffi 定义更容易的工具或方法

问题

使用LuaJIT的ffi.cdef可以定义C函数,使其通过Lua调用。

问题在于,在头文件和msdn定义中,所有函数都使用Microsoft类型定义,因此它们基本上必须完全重写。

HANDLE WINAPI CreateToolhelp32Snapshot(
  _In_  DWORD dwFlags,
  _In_  DWORD th32ProcessID
);

重写为:

void* CreateToolhelp32Snapshot( uint32_t dwFlags, uint32_t th32ProcessID )

对于几千个API,这变得非常耗时,而WinAPI中有如此多的typedefs,从头文件中仅仅复制它们是不可行的。

是否有更快的方法来完成这个过程,或者是否有一个工具可以生成正确格式的定义呢?

点赞