Eric Tetz

lua-users home
wiki

在发布 创建二进制扩展模块 后,我发现类似的 二进制模块教程。但是,该教程没有解决 Lua API 例程位于何处的问题。如果它们被静态链接到宿主应用程序中,那么扩展程序就无法使用它们(除非宿主应用程序专门编写为将函数指针传递给 DLL,这是一种超出 'loadlib' 范围的机制)。因此,DLL 必须静态链接到它自己的副本的 Lua API 例程。如果 Lua API 使用任何静态变量(我不知道它是否使用),那么宿主和扩展程序将拥有单独的副本,并且可能会出现严重错误。

但是,由于 二进制模块教程 中没有提到此问题,因此似乎 Lua使用任何静态数据,并且在那里描述的创建模块实际上有效。它只是浪费空间,因为每个扩展模块都包含它自己的 Lua API 的完整副本。


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2003 年 8 月 31 日下午 5:48 GMT (差异)