从文本框加载内存地址

时间:2014-01-18 12:49:54

标签: c# memory textbox

我正在尝试创建一个应用程序,让用户在文本框中输入内存地址。

文本框中的输入是:“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。

1 个答案:

答案 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)方法。

但要小心,允许用户访问任意内存位置。