gpt4 book ai didi

lua - 为嵌入式和静态链接的 Lua 运行时捆绑额外的 Lua 库

转载 作者:行者123 更新时间:2023-12-04 05:58:16 25 4
gpt4 key购买 nike

我通过静态链接的方式在我的项目中嵌入了 Win32 上的 Lua(不,我不能切换到 DLL)。我想捆绑更多使用 native 代码的 Lua 扩展 - 而不仅仅是纯 .lua 文件。具体来说,我想捆绑Steve Donovan's winapi它以一些 lua 文件和一些 .c 文件的形式出现。

怎么做?

最佳答案

你需要做两件事。首先,您必须将 Lua DLL 项目编译为非 DLL 项目。由于它们旨在成为 DLL 模块,因此它们可能不会在其构建系统中对此进行规定。这意味着你必须自己做。摆脱 DLL 主要函数和其他专门的 DLL 函数(但请注意它们的作用,并确保在重要时复制它)。并确保更改任何尝试将 Lua 包含在动态链接中的#defines。

所有 Lua 模块 DLL 都导出一个或多个 luaopen_* 形式的函数, 其中 *是要加载的模块的名称。这个函数可能会被 declspec() 修饰。符号。通常,符号是通过预处理器宏完成的,但可能不是。不管怎样,删除它,把它变成一个普通的函数声明。

现在,一旦您创建了 lua_State对象,只需调用 luaopen_*与您的 lua_State 一起使用.

关于lua - 为嵌入式和静态链接的 Lua 运行时捆绑额外的 Lua 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9245394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com