gpt4 book ai didi

lua - 代码块的脚本语言

转载 作者:行者123 更新时间:2023-12-04 18:09:07 25 4
gpt4 key购买 nike

我得到了 code::blocks 作为我的 C/C++ 编译器和 C++ 的傻瓜,但我唯一的问题是我以前从未听说过的晦涩的脚本语言; “松鼠”。是否可以将 code::blocks 的脚本语言更改为我更熟悉的语言,例如 lua?

最佳答案

这在理论上似乎是可行的。在实践中是否可行,很难说。这是您需要做的:

  1. 创建一个文件夹 src/sdk/scripting/lua,在其中放置 Lua 解释器(+ Lua 库,如 io、math 等)源代码并为其创建项目文件
  2. 在 src/sdk/scripting/lua_bindings 中创建一个文件夹,用于放置 Lua 绑定(bind):允许 Lua 脚本访问主机应用程序的 C++ 文件。我建议您使用像 SWIG 这样的工具来生成它们(codeblocks 使用 SqPlus)。这涉及确定要导出哪些代码块函数/类,创建一个或多个 .i 文件,在其上运行 SWIG,将生成的文件放入“lua_bindings”;为绑定(bind)创建一个 DLL 项目
  3. 创建一个 src/lua_scripts,在其中放置与 src/scripts 中的脚本等效的 Lua;或者更确切地说,这些脚本的一个子集,因为如果您只是遵循书中的示例,您不太可能希望将所有可通过 Squirrel 获得的内容导出到 Lua
  4. 找到在代码块中实例化 Squirrel 解释器的位置以及调用 RegisterBindings 的位置;将其替换为 Lua 解释器的实例化并调用您将通过 SWIG 创建的 luaopen_codeblocks(如果您使用 SWIG,则不需要 RegisterLuaBindings,它会为您完成)
  5. 找到代码块调用各种脚本的位置(参见 http://wiki.codeblocks.org/index.php?title=Scripting_Code::Blocks )。调用等效的 Lua 脚本(在 lua_scripts 中——您肯定必须将其复制到代码块的安装文件夹中)。例如 startup.script,它是 codeblocks 在启动时自动查找的 Squirrel 脚本,由 src/src/app.cpp 中的以下代码运行:

    // run startup script
    try
    {
    wxString startup = ConfigManager::LocateDataFile(_T("startup.script"), sdScriptsUser | sdScriptsGlobal);
    if (!startup.IsEmpty())
    Manager::Get()->GetScriptingManager()->LoadScript(startup);
    }
    catch (SquirrelError& exception)
    {
    Manager::Get()->GetScriptingManager()->DisplayErrors(&exception);
    }

我想就是这样了。

自然地,根据您的脚本的广泛程度,您可能会偷工减料,但如您所见,这不适合胆小的人!

关于lua - 代码块的脚本语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707756/

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