开始学习LUA,在LUA中使用UNICODE字符串

    新买到LUA程序设计(第2版)开始学习LUA程序设计。
    今天测试用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)

    为了在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程序界面如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值