问题标签 [iup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何更新现有应用的 Lua 库?
我一直在努力更新一个使用 Lua 5.1 和 IUP 2.5.1 的旧应用程序,我想更新它使用的 Lua 和 IUP 版本,但我是这方面的新手,所以我不知道如何。我尝试用谷歌搜索答案,但我无法理解它。
你怎么知道要下载哪些二进制文件?我正在使用 Windows 10 64x,但我希望其他人能够使用该应用程序,即使他们没有 Lua/IUP。你把二进制文件放在哪里?有没有办法可以编辑现有代码以将库连接到应用程序?
如果有帮助,可以在此处找到文件:https ://sourceforge.net/projects/citybinder-for-homecoming/files/CityBinder_For_Homecoming_v0.1/主文件夹包括文件citybinder.c和Makefile,它们设置了要求。Citybinder.c提到了很多.h文件,但文件夹中没有。还有一个解释器:iuplua5.exe。
function - 来自不同文件函数的值返回空白 (Lua)
我在处理一些最初由更有经验的人创建的代码时遇到问题。我想从一个 Lua 文件到另一个文件中获取一些信息,但这很困难,因为很多元素都是用我不完全理解的复杂函数创建的。
这是我正在开发的应用程序部分的屏幕截图。我想复制出现在中间文本栏中的文本(它根据用户从 Power Binder 中选择的命令而有所不同)并将其添加到底部栏中当前显示“测试”的代码中。正如您在注释掉的尝试中看到的那样,我尝试了很多东西,但是 rtnMacroCmd 一直返回空白 iup.Message (我将它们用作测试),除非我将其设置为 tbtn.action 函数之外的整数或字符串.
谁能告诉我发生了什么事?
这是来自名为 macromaker.lua 的文件的代码。我添加了一个文本框和按钮,它们是从另一个名为 powerbinder.lua 的文件中的函数创建的。
这是来自 powerbinder.lua 的一些代码:
结尾
installation - 为什么 Lua 二进制文件包含 .h 和 .c 文件,但 Lua IUP 二进制文件包含 .DLL?
我正在尝试更新一个使用 Lua 和 IUP 的旧应用程序,但我不是很有经验,所以我想知道我是否有太多文件。我最初下载了 Lua 5.4.3 并按照教程介绍了如何将这些 .c 和 .h 文件转换为 Lua.dll、Lua.exe、Lua.lib 和 Luac.exe。
然后我下载了 iup-3.30-Lua54_Win64_bin.zip 并解压到它自己的文件夹中。该文件夹包含一堆 .DLL 和一些 .EXE。由于这些文件有自己的解释器(iuplua54.exe),Lua 5.4.3 中的文件是否不必要?为什么这些下载有不同的文件类型?是我安装错了还是我得到了错误的文件?
当我尝试打开特定的 .lua 脚本时,我遇到了不同的 Lua .exe 文件问题,这些文件给了我不同的错误。
lua - 如何有效地提取大型主表中以指定字符串开头的所有值
我正在为 Lua 程序设计 UI,其中一个元素要求用户从主表中选择现有值或在该表中创建新值。
我通常会使用带有 EDITBOX = "YES" 的 IUP 列表。
但是,用户可以选择的项目数量可能达到数百甚至数千,并且在 iup 中填充列表(以及从中进行选择)时的性能慢得令人无法接受。我无法控制表格中的项目数量。
我目前的想法是创建一个带有编辑框的列表,但没有任何值。当用户在编辑框中输入内容时(可能是 2-3 个字符之后),列表将填充以输入字符开头的表格项子集。然后用户可以从列表中选择一个项目或继续键入以缩小选项或创建一个新项目。
为此,我需要能够创建一个新表,其中包含以输入字符开头的主表中的项目。
一种选择是使用 Penlight 的“startswith”函数遍历主表以创建新表:
但是,如果主表很大,我担心这样做的性能。有没有更有效的编码方式,或者我可以实现 UI 的不同方式?
c - 让 Lua 5.1 和 IUP 3.30 在 Windows 10 x64 上使用 VSCode 和 GCC
尽管研究了论坛、教程和 Lua/IUP 文档,但我一直被困在这个问题上。我一直在努力更新一个废弃的应用程序,该应用程序主要使用 Lua 脚本和一个调用头文件的 C 脚本。我满足于更改 Lua 文件然后运行应用程序的 .exe 文件以检查结果,但现在我想更新它使用的 IUP(但不是 Lua)并能够在 VSCode 中编译和调试代码,但我我没有像这样的技术经验。我只想重新开始编写 Lua 脚本。
我尝试安装iup-3.30-Lua51_Win64_bin.zip(包含 DLL 和 EXE)但无法使其正常工作(编译器如何在没有 .h 文件的情况下找到 C 文件中调用的头文件?)。
尝试分别下载 Lua、IUP、CD 和 IM(带有 .h 文件的版本)并将它们放在各自的文件夹中,如 IUP 站点上所示。幸运地获得了一个简单的 C 文件,该文件可以
include
通过 Lua 编译和运行(它从 Lua 文件中打印文本),但无法让 IUP 工作。VSCode 只是找不到它。尝试在本 PDF 指南 ( https://media.wiley.com/product_data/excerpt/71/04700691/0470069171.pdf )中设置环境变量,如第 6 页,但它不起作用,到第 20 页,我很困惑,因为我下载的lua-5.1.5_Win64_bin.zip文件的文件结构和内容与PDF 预期的不同,所以我不知道该怎么办。
该应用程序的源文件夹包含 iuplua5.exe。用更新的 iuplua51.exe 替换它(并将其重命名为 iuplua5),并没有修复它。C文件以注释开头
Creates a Lua executable linked to all standard IUP libraries * Based on the Lua stand-alone interpreter for Lua 5.1.
我打开解释器并执行主 Lua 文件。该应用程序已启动,但尝试执行诸如创建新文件之类的操作会给我带来错误,因为它找不到 C 文件中定义的全局变量。
该应用程序的源文件文件夹还包含一个 .loh 文件(不确定那是什么),以及一个包含看起来很重要的说明的 Makefile,例如:
### Targets library directories gcc_LIBDIRS= -L./lua-5.1/lib -L../iup/lib/mingw3 -L../cd/lib/mingw3 -L../im/lib/mingw3
尝试在我的 c_cpp_properties.json 和 tasks.json 文件中使用“-I”、“-L”和“-l”,但仅在单独安装的 Lua 上成功,而不是 IUP。
Makefile 提到了这个变量
gcc_CC=mingw32-gcc.exe
,所以我去寻找那个编译器,但是我有 x64,所以我下载了那个版本,并让它与 VSCode 一起工作。我有一个 VSCode 扩展来运行 Makefile,但我不太了解使用它,或者运行这个 Makefile 是否可以以某种方式解决我的问题并使 VSCode/GCC 看到依赖项。
有谁知道我怎样才能让所有这些东西一起工作?