【问题标题】:VB6 - Lua IntegrationVB6 - Lua 集成
【发布时间】:2010-11-15 14:38:24
【问题描述】:

我想知道是否有人对集成 Lua 和 VB6 有任何提示。我正在运行一个小型在线 RPG,添加一些脚本会很棒。

【问题讨论】:

    标签: scripting vb6 lua


    【解决方案1】:

    嗯,这是可行的。我曾经为 Lua 5.0.2 做过,但我找不到文件。在您拥有的选项中,您可以:

    • 将 Lua 包装在 COM dll 中,公开 Lua API,因此在 VB 中您可以添加对它的引用。

    • 使用 __stdcall 调用约定构建您的自定义 Lua 版本,因此您可以在 VB 中使用 Declare 导入所需的 Lua 函数。编写类型库将大大简化与 VB 的集成(主要是为您完成从 C 字符串到 VB 字符串的转换)。

    • 构建一个包装 DLL,它复制 Lua 的接口但使用 __stdcall,添加使用宏定义的函数等。

    我记得使用自定义构建的 Lua,我可以将 VB 函数(在模块中定义)注册到 Lua 中并从脚本中调用它们。我不记得我是否曾经让它调用成员函数。

    我希望这能让你开始。

    【讨论】:

    • +1。请注意,Matt Curland 的“Advanced Visual Basic 6”一书包含一种从 VB6 调用 CDECL DLL 的方法,但要谨慎使用,因为它会为每个函数调用增加开销。构建这个 LUA RPG 东西的自定义 __stdcall 版本可能会更好。
    • 关于大小和性能的字符串分配的开销 :-))
    • @wqw:确实,大多数时候开销可能不相关,就像字符串分配的开销大多不相关一样。
    【解决方案2】:

    使用LuaInterface。它是一个允许您使用 lua 的 .NET 库。但是,它本身并没有附带文档,请查看 this 以获取一些有用的指南。

    基本上,您将 DLL 添加到您的项目并使用语句引用/添加它,然后创建一个新的 Lua 对象。从那里,您可以像访问数组一样访问它以提取变量,并且有调用 lua 函数和操作表的方法。

    【讨论】:

    • 问题指的是 VB 6 而不是 VB .NET
    猜你喜欢
    • 2010-09-14
    • 2015-03-29
    • 2011-06-12
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多