在Lua中显示简单的消息框。

听起来像是一个“让我来为你谷歌一下”的问题,但经过一定量的研究,我找不到答案。

Lua 中是否有内置的消息框方法?如果没有,那么做这个的“标准”方式是什么?

点赞
用户1665846
用户1665846

不,Lua 中没有内置的消息框。你需要使用像这样的 Lua 模块:[IupLua] (http://webserver2.tecgraf.puc-rio.br/iup/)

2015-10-02 15:26:42
用户2546626
用户2546626

消息框是 GUI 元素,而且像很多语言一样并不是标准的一部分。你可以使用一个外部的库(列表),使用系统库/本地功能(LuaJIT FFI),或者是用 Lua C 函数 扩展你的解释器。

我更喜欢用 LuaJIT。下面是一个在 Windows 上的示例:

local ffi = require("ffi")  -- 加载 FFI 模块(实例)

local user32 = ffi.load("user32")   -- 加载 User32 DLL 句柄

ffi.cdef([[
enum{
    MB_OK = 0x00000000L,
    MB_ICONINFORMATION = 0x00000040L
};

typedef void* HANDLE;
typedef HANDLE HWND;
typedef const char* LPCSTR;
typedef unsigned UINT;

int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT);
]]) -- 定义 C -> Lua 的解释

user32.MessageBoxA(nil, "Hello world!", "My message", ffi.C.MB_OK + ffi.C.MB_ICONINFORMATION)   -- 从 User32 调用 C 函数 'MessageBoxA'
2015-10-03 08:51:49