【发布时间】:2014-03-27 10:42:04
【问题描述】:
我正在使用 NLua 作为我的应用程序的脚本接口。 我想将键盘输入从 LUA 语言发送到我的 C# 代码。
我使用这个 C# 代码。
using (Lua lua = new Lua())
{
lua.LoadCLRPackage();
lua.RegisterFunction("keypressC", null, typeof(TestNLUA).GetMethod("keypressC"));
lua.RegisterFunction("keypressS", null, typeof(TestNLUA).GetMethod("keypressS"));
lua["Key"] = new SpecialKey();
}
public class SpecialKey
{
public static readonly char EnterC = '\uE007';
public static readonly string EnterS = Convert.ToString(EnterC);
}
public class TestNLUA
{
public static void keypressC(char key)
{
// key = 57351 => OK
}
public static void keypressS(string key)
{
char[] akey = key.ToCharArray();
// akey[0] = 63 = ? (question mark) => KO
}
}
在 LUA 脚本中我会这样做
keypressC(Key.EnterC)
keypressS(Key.EnterS)
在 keypressC 中,Nlua 将值 57351 传递给 key 参数。没关系。
在 keypressS 中,Nlua 传递值“?”到关键参数。是KO。 我不知道为什么会有字符“?”。 看起来像是 NLua 中的编组错误(即 LuaInterface)?
你能帮帮我吗?
【问题讨论】: