使用LuaJIT的ffi.cdef,可以定义一个C函数,该函数被导出,因此可以通过Lua调用。
问题是在头文件和msdn定义中,所有函数都使用microsoft typedef,所以它们基本上必须完全重写。
HANDLE WINAPI CreateToolhelp32Snapshot(
_In_ DWORD dwFlags,
_In_ DWORD th32ProcessID
);
改写为:
void* CreateToolhelp32Snapshot( uint32_t dwFlags, uint32_t th32ProcessID )
对于几千个API,这变得非常耗时 - 在WinAPI中有这么多的typedef,从头部复制它们是不切实际的。
是否有人有更快的方法来执行此操作,或者是以适当的格式生成定义的工具?