我已经在我的项目中通过静态链接将Wina嵌入到Win32中(不,我不能切换到DLL)。我想捆绑更多使用本机代码的Lua扩展 - 而不仅仅是纯.lua文件。具体来说,我想捆绑Steve Donovan's winapi,它来自一些lua文件和一些.c文件。
怎么做?
答案 0 :(得分:3)
你需要做两件事。首先,您必须将Lua DLL项目编译为非DLL项目。由于它们的目的是成为DLL模块,因此它们在构建系统中可能没有这方面的规定。这意味着你必须自己做。摆脱DLL主要功能和其他专门的DLL函数(但要注意它们的作用,确保你复制它,如果它很重要)。并确保您更改任何试图通过动态链接包含Lua的#defines。
所有Lua模块DLL都导出luaopen_*
形式的一个或多个函数,其中*
是要加载的模块的名称。此函数可能会使用declspec()
符号进行修饰。通常,表示法是通过预处理器宏完成的,但可能不是。无论哪种方式,将其删除,将其转换为正常的函数声明。
现在,一旦您创建了lua_State
个对象,只需使用luaopen_*
调用lua_State
函数。