アプリケーションとのスクリプト インターフェイスに 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 は値「?」を渡します。キーパラメータに。コです。なぜ「?」という文字があるのかわかりません。NLua (つまり LuaInterface) のマーシャリング エラーのように見えますか?
手伝って頂けますか?