这是关于 VisLua 实现的各种问题的笔记。
GUI 库
有数百个 GUI 库 [1],但很少有良好、可移植、维护良好的。这里有一些选择:-
- wxWindows [2]。这是一个相当大的库,但有很多有用的控件,并且相当便携。支持的平台是 [3]:-
- Windows 3.1、Windows 95/98、Windows NT、Windows 2000、Windows ME。
- Linux 和其他带 GTK+ 的 Unix 平台。
- 带 Motif 或免费 Motif 克隆 Lesstif 的 Unix。
- Mac OS。
- 正在研究嵌入式平台。请参阅 wxUniversal 项目。
- OS/2 端口正在进行中,您也可以在 OS/2 上为 GTK+ 或 Motif 编译 wxWindows。
- FLTK [4]。顾名思义,它相当紧凑和快速。便携性不是特别好。平台:-
- X - Unix。
- Win32。
- 提供 MAC OS 端口。
- Tcl/Tk [5]。相当便携,但控件集有限。平台 [6]:-
- Windows 95、98、NT 4.0(Intel)、2000
- Solaris 2.5、2.6、7(SPARC)
- HP-UX 10.20
- Linux(Intel、Red Hat 5.0+、SuSE 6.0+)
- SGI IRIX 6.3+
- IUP [7] TeCGraf 内部。 “IUP 使用基于 TEX 文本编辑器中的框和胶水范式的抽象布局模型。此模型结合对话框规范语言 (LED) 或 Lua 绑定 (IupLua) 使对话框创建任务更灵活,并且独立于图形系统的分辨率。”
- Motif。
- Microsoft Windows 95、Microsoft Windows 98、Microsoft Windows NT 和 Microsoft Windows 2000。
- FOX [8]。版本 0.99.193 的平台如下。似乎非常便携。我认为控件集不像 wxWindows 那么大,是一个值得竞争的对手!没有 MacOS 端口,尽管据报道,在 X11 支持下(需要大量)工作。
- Linux。任何版本的 Linux 都应该可以在任何硬件上工作。FOX 正在 LINUX 上开发。
- FreeBSD。据报道 FreeBSD 可以工作。
- SGI IRIX。拥有 IRIX 5.3 及以上版本的 SGI 系统。它可以用 GCC 或 SGI 的 MIPS Pro C++ 编译器编译。
- SunOS/Solaris。Solaris 或 SunOS。用 GCC 或 Sun Workshop C++ 编译。
- HP-UX。在 HP-UX 9.x 和 10.x 下用 GCC 测试。
- IBM AIX。在 AIX 4.2 下用 GCC 测试。
- DEC Alpha/COMPAQ Tru64。在 Digital Unix 4.0 下用 GCC 测试。
- 其他 UNIX 系统。如果您拥有一个不错的 C++ 编译器、UNIX、X11,那么 FOX 很有可能正常工作。
- Microsoft Windows 2000、Windows NT 4.0、Windows 95、Windows 98。使用 Visual C++ 6.0、Borland C++ Builder、CYGWIN32、MINGWIN32 和 IBM VisualAge? C++ for Windows 编译。较旧版本的 Visual C++ 也可以工作,但在这种情况下您必须创建自己的项目。
- WideStudio [9]。“WideStudio 是一个集成开发环境 (IDE),用于为 [见下文] 构建 GUI 应用程序。此软件是免费的(MIT/X Consortiun Licence)。” IDE 环境,非原生绘制,附带 gcc 用于构建项目。
- Linux
- FreeBSD
- SOLARIS
- Windows 95/98/ME、Windows NT、Win2K。
我建议使用 wxWindows,因为它拥有庞大的控件集且非常便携。一个绑定正在进行中 [10],使用了自定义绑定器。另一种选择是提供与 SWIG 的绑定,与 wxPython [11] 一起提供。这些可以修改为与 LuaSWIG [12] 一起使用,并随着 wxWindows 和 wxPython 的更新而更新。
编码风格说明
所有代码都应尽可能便携和文档齐全。这需要进一步讨论。大部分代码可能会遵循 Lua 的惯例,用 ANSI C 编写,以提高便携性。
wxWindows 在使用 C++ [13] 方面有一些指导方针,例如:不使用模板等。如果 wxLua 要用于 GUI 且便携性是优先考虑的,那么注意这些指导方针可能是有价值的。
语法高亮
通过 Scintilla 编辑器 [14],可以在 wxLua 中对(未修改的)Lua 进行语法高亮。任何不支持 Scintilla 的平台都可以只使用文本编辑器。
Lua 问题说明
Lua 作为一种人们喜欢修改和嵌入的语言,存在一些问题。
- 更改数字类型,例如从 double 改为 float。
- 语法更改,例如语言可能已被修改。
这些问题可以通过重新编译 wxLua 绑定和 VisLua 调试器绑定来适应客户端应用程序。这些绑定的包装器可以允许配置任何语法更改。
调试器
- 调试服务器应该能够使用标准的 Lua 调试库
ldblib.c 来执行任何调试操作。 - GUI 使用 wxLua GUI 库用 Lua 编写。
结构
有关任何令人困惑的术语,请参阅 VisLuaGlossary。
+--------------------------------+
| application (C/C++/Lua/etc) |
| |
+ +-------------------+ +--------+
| | debug server core | | Lua VM |
+-+-------------------+-+--------+
|
| <-- debug link
|
+--------------------------------+
| | debug client core | | Lua VM |
| +-------------------+ +--------|
| |
| debug client w/ UI |
+--------------------------------+
*>8^)-|=< user
概念验证
我制作了一个应用程序,让您可以像使用控制台一样 telnet 到 Lua 会话。请在开发邮件列表中提供反馈,而不是在这里。
- 文件:wiki_insecure/users/ntrout/vislua/vlds_test.zip
实现评论
- 评论有时会被清除,因为它们在 VisLua 开发邮件列表中进行了讨论。
RecentChanges · preferences
编辑 · 历史
最后编辑于 2003 年 2 月 12 日下午 2:13 GMT (diff)