我正在使用 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)?
你能帮助我吗?