首先,我想澄清一下,我是一个使用Lua的新手。 我的目标是使用下面发布的代码创建Java应用程序。 我有一台联想Y560,它有一个Windows 7 x64操作系统。为此,我下载了LuaForWindows_v5.1.4-46。 正如我所说,我的目标是创建一个具有Symbian OS S40的移动Java应用程序,我的想法是将Lua中的这个程序转换为Java。但在此过程中,我怀疑是否存在疑虑。 如果我错误地提出这个问题,我会道歉。
尝试编译这个Lua的程序,我得到以下错误:
> > lua -e "io.stdout:setvbuf 'no'" "EEPro.big.lua"
> > lua: proyecto.big.lua:14: attempt to call field 'uchar' (a nil value)
> stack traceback:
proyecto.big.lua:14: in function 'utf8'
proyecto.big.lua:35: in main chunk
[C]: ?
退出代码:1
你能告诉我为什么会发生这种情况吗?
答案 0 :(得分:0)
string.uchar
可以通过这种方式实现(只需在EEPro.big.lua
文件的开头插入这些行):
function string.uchar(c, ...)
if c then
local t, h, s = {}, 128, string.uchar(...)
while c >= h do
t[#t+1] = 128 + c%64
c = math.floor(c/64)
h = h > 32 and 32 or h/2
end
t[#t+1] = 256 - 2*h + c
return s.char((table.unpack or unpack)(t)):reverse()..s
else
return ''
end
end