我正在尝试创建一个应用程序,让用户在文本框中输入内存地址。
文本框中的输入是:“0x0060EBDC”。
我想在此处插入文本框文本:
Android.SetMemory(''''TEXTBOXTEXT HERE(0x0060EBDC)'''', userinput2);
我让它为字节(“userinput2”)工作,但不能让它用于内存地址。
我不希望它转换或任何东西。只是从文本框生成代码。
当前代码:
// textbox23内存 // textbox4值
var value = textBox4.Text;
var value = textBox4.Text;
var array = value
.Split(',')
.Select(i => i.Trim().Replace("0x", ""))
.Select(i => Convert.ToByte(i, 16))
.ToArray();
Android.SetMemory(0x0060EBDC, array);
所以我希望用userinputted文本框“0x00100101”替换0x0060EBDC。
答案 0 :(得分:2)
SetMemory
方法的第一个参数似乎只是64位无符号整数(.NET中为ulong
)。
您必须将文本框的文本转换为数字,以便将其用作方法中的参数(您已经为数组变量做了什么?)。
ulong address = Convert.ToUInt64(textbox.Text, 16);
Android.SetMemory(address, array);
Convert.ToUInt64
会自动处理带有和不带前缀0x
/ 0X
的输入格式。如果要在尝试转换文本框的值之前进行正确的错误检查,请改用ulong.TryParse(string, out ulong)
方法。
但要小心,允许用户访问任意内存位置。