C++基础:在LUA中使用UNICODE字符串

C++基础:在LUA中使用UNICODE字符串,第1张

今天测试用LUA调用windows的MessageBoxW函数。需要在LUA中定义UNICODE字符串。LUA的string类型为8位编码,包括数值0,可以编码任意二进制数据。如果编码UNICODE,则需要使用"\"转义序列。如字符串"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)
  为了在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函数。UNICODE字符串需要在LUA定义。LUA的字符串类型是8位代码,包括值0,可以编码任何二进制数据。如果编码UNICODE,您需要使用“\”转义序列。例如,如果字符串“LUA”在LUA用UNICODE表示:text = "6[1]05[1]05[1]0 ",如果字符串很长,也可以用TABLE表示:
text = TABLE . concat { " \ 076 \ 000。00 "}我写的LUA程序如下。win32.lua目前只包含一个函数messagebox w:
-test _ Win32 . Lua
require " Win32 "
local title = table . concat { " \ 084 \ 000 "、" \ 000 "、" 5[1]0 "、" 5[1]0 "、" 2[1]0 "、
"5[1]0 "、" 5[1]0 "、"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的源代码,编译后的可执行文件和LUA脚本包含在源代码的BIN目录下。
LUA_UNI程序用WTL语言编写,在VS60下用VisualFC插件设计。
LUA_UNICODE程序接口如下:

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++基础:在LUA中使用UNICODE字符串

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情