新买到LUA程序设计(第2版)开始学习LUA程序设计。
今天测试用LUA调用windows的MessageBoxW函数。需要在LUA中定义UNICODE字符串。LUA的string类型为8位编码,包括数值0,可以编码任意二进制数据。如果编码UNICODE,则需要使用"/<ddd>"转义序列。如字符串"LUA"如果使用UNICODE 在LUA中表示为:
为了在LUA中方便的编写UNICODE字符串,我使用WTL编写了一个LUA用UNICODE转换程序,支持unicode->lua(table)和lua(table)->unicode的双向转换。
下载地址:
http://www.cppblog.com/Files/visualfc/lua_uni.zip
压缩包中包括了LUA_UNICODE的源代码,源码中的BIN目录中包括编译好的可执行文件和LUA脚本。
LUA_UNI程序使用WTL编写,在VS60下使用VisualFC插件设计完成。
LUA_UNICODE程序界面如下:
今天测试用LUA调用windows的MessageBoxW函数。需要在LUA中定义UNICODE字符串。LUA的string类型为8位编码,包括数值0,可以编码任意二进制数据。如果编码UNICODE,则需要使用"/<ddd>"转义序列。如字符串"LUA"如果使用UNICODE 在LUA中表示为:
text
=
"
/076/000/085/000/065/000
"
如果字符串很长,也可以使用TABLE的方式来表示:
text
=
table.concat{
"
/076/000
"
,
"
/085/000
"
,
"
/065/000
"
}
我编写的LUA程序如下,win32.dll目前仅包含MessageBoxW一个函数:
--
test_win32.lua
require " win32 "
local title = table.concat{ " /084/000 " , " /104/000 " , " /105/000 " , " /115/000 " , " /032/000 " ,
" /105/000 " , " /115/000 " , " /032/000 " , " /097/000 " , " /032/000 " ,
" /116/000 " , " /101/000 " , " /115/000 " , " /116/000 " }
local text = table.concat{ " /069/000 " , " /110/000 " , " /103/000 " , " /108/000 " , " /105/000 " ,
" /115/000 " , " /104/000 " , " /013/000 " , " /010/000 " , " /073/108 " ,
" /087/091 " , " /013/000 " , " /010/000 " , " /092/213 " , " /109/173 " ,
" /180/197 " , " /013/000 " , " /010/000 " }
win32.MessageBoxW(0,text,title,0)
require " win32 "
local title = table.concat{ " /084/000 " , " /104/000 " , " /105/000 " , " /115/000 " , " /032/000 " ,
" /105/000 " , " /115/000 " , " /032/000 " , " /097/000 " , " /032/000 " ,
" /116/000 " , " /101/000 " , " /115/000 " , " /116/000 " }
local text = table.concat{ " /069/000 " , " /110/000 " , " /103/000 " , " /108/000 " , " /105/000 " ,
" /115/000 " , " /104/000 " , " /013/000 " , " /010/000 " , " /073/108 " ,
" /087/091 " , " /013/000 " , " /010/000 " , " /092/213 " , " /109/173 " ,
" /180/197 " , " /013/000 " , " /010/000 " }
win32.MessageBoxW(0,text,title,0)
为了在LUA中方便的编写UNICODE字符串,我使用WTL编写了一个LUA用UNICODE转换程序,支持unicode->lua(table)和lua(table)->unicode的双向转换。
下载地址:
http://www.cppblog.com/Files/visualfc/lua_uni.zip
压缩包中包括了LUA_UNICODE的源代码,源码中的BIN目录中包括编译好的可执行文件和LUA脚本。
LUA_UNI程序使用WTL编写,在VS60下使用VisualFC插件设计完成。
LUA_UNICODE程序界面如下:
