还需要帮助! 'XDevkit.IXboxDebugTarget.GetMemory(uint,uint,byte [],out uint)'的最佳重载方法匹配有一些无效的参数

时间:2012-06-21 16:41:31

标签: c# byte syntax-error object-reference invalid-argument

  

可能重复:
  The best overloaded method match for 'XDevkit.IXboxDebugTarget.GetMemory(uint, uint, byte[], out uint)' has some invalid arguments

不确定为什么这会被拒绝,我只需要帮助。我一直在努力奋斗这几个小时,我已经完成了,如果你不喜欢这个帖子,请继续投票,不要投票,所以没有人能看到它!

好的,我已经谷歌搜索并永远阅读了这样的答案和问题,但是没有找到解释,我可以理解我遇到的这些问题,我希望有人在这里可以提供帮助!

Error1:'XDevkit.IXboxDebugTarget.GetMemory(uint,uint,byte [],out uint)的最佳重载方法匹配'有一些无效的参数

基本代码:

XDevkit.IXboxDebugTarget.GetMemory(uint, uint, byte[], out uint)

我拥有

        uint num1;
        uint num2;
        uint num4;


        num1 = Convert.ToUInt32(textBox2.Text);
        num2 = Convert.ToUInt32(textBox3.Text);
        num4 = Convert.ToUInt32(textBox5.Text);
        byte[] num3;
        num3 = BitConverter.GetBytes(Convert.ToInt32(textBox3.Text));


        IXboxManager xbm = new XboxManager();
        IXboxConsole xbc = xbm.OpenConsole("textBox1.Text"); //Or Console Name in "" 
        IXboxDebugTarget xdt = xbc.DebugTarget;
        xdt.ConnectAsDebugger("XeDevMemPatcher", XboxDebugConnectFlags.Force); // this isn't always needed 
        IXboxDebugTarget.GetMemory(num1, num2, num3[], out num4);

    }

使用此代码编辑当前错误

1)当前上下文中不存在名称“编码”

2)'XDevkit.IXboxDebugTarget.GetMemory(uint,uint,byte [],out uint)'的最佳重载方法匹配有一些无效的2222个参数

3)参数3:无法从'byte'转换为'byte []'

好的,所以这显然非常令人困惑,因为我没有单独或根据答案工作,所以我只是在这里发布整个来源供你们查看,希望这会有所帮助: 抱歉,我无法发布GUI的图片,因为我没有足够的REP,但希望这应该没问题:

使用System; 使用System.Windows.Forms;

命名空间XDevkit {     公共部分类Form1:表格     {         公共Form1()         {             的InitializeComponent();         }

    private void button1_Click(object sender, EventArgs e)
    {
        IXboxManager xbm = new XboxManager();
        //IXboxConsole xbc = xbm.OpenConsole(xbm.DefaultConsole); // dev 
        IXboxConsole xbc = xbm.OpenConsole("textBox1.Text");
        IXboxDebugTarget xdt = xbc.DebugTarget;
        xdt.ConnectAsDebugger("XeDevMemPatcher", XboxDebugConnectFlags.Force);

    }

    private void button2_Click(object sender, EventArgs e)
    {
    uint num1 = Convert.ToUInt32(textBox2.Text);
    uint num2 = Convert.ToUInt32(textBox3.Text);
    byte[] num3 = Encoding.ASCII.GetBytes(textBox4.Text);
    uint num4 = Convert.ToUInt32(textBox5.Text);
    int num5 = Convert.ToInt32(textBox4.Text);

// ...

    if (num3.Length > 1) 
    {    
        IXboxManager xbm = new XboxManager();
        IXboxConsole xbc = xbm.OpenConsole("textBox1.Text");
        IXboxDebugTarget xdt = xbc.DebugTarget;
        xdt.ConnectAsDebugger("XeDevMemPatcher", XboxDebugConnectFlags.Force);
        IXboxDebugTarget.GetMemory(num1, num2, num3[1], out num4);
}

    private void button3_Click(object sender, EventArgs e)
    {
        string a;
        a = "textBox6.Text";

        IXboxManager xbm = new XboxManager();
        IXboxConsole xbc = xbm.OpenConsole(textBox1.Text);
        IXboxConsole.ScreenShot(a)

    }
}

}

2 个答案:

答案 0 :(得分:1)

错误1: num3属于byte类型,没有索引器。

如果您将代码修改为以下代码,则示例可能有效:

    uint num1 = Convert.ToUInt32(textBox2.Text);
    uint num2 = Convert.ToUInt32(textBox3.Text);
    byte[] num3 = Encoding.ASCII.GetBytes(textBox4.Text);
    uint num4 = Convert.ToUInt32(textBox5.Text);
    int num5 = Convert.ToInt32(textBox4.Text);

    // ...

    if (num3.Length > 1) {    
        IXboxManager xbm = new XboxManager();
        IXboxConsole xbc = xbm.OpenConsole("textBox1.Text");
        IXboxDebugTarget xdt = xbc.DebugTarget;
        xdt.ConnectAsDebugger("XeDevMemPatcher", XboxDebugConnectFlags.Force);
        IXboxDebugTarget.GetMemory(num1, num2, num3[1], out num4);
    }

错误2: IXboxConsole.ScreenShot是一个实例方法,而不是类(也称为静态)方法。您必须先创建一个实例,然后才能调用实例方法:

IXboxManager xbm = new XboxManager();
IXboxConsole xbc = xbm.OpenConsole(textBox1.Text);
xbc.ScreenShot("screenshot");

答案 1 :(得分:0)

从错误消息中可以清楚地看到。 num3不是字节数组,因此您无法使用数组索引访问它。如果要按需要访问它,则需要将textbox3.Text转换为字节数组。您尚未向我们提供此信息。

编辑:

如果要将文本框中的值转换为字节数组,可以执行以下操作:

byte[] num3 = BitConvert.GetBytes(Convert.ToInt32(textBox3.Text));

然后您可以根据需要访问num3[1](假设数组的长度至少为1)。