-2

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

不知道为什么这被否决,我只需要帮助。我已经为此苦苦挣扎了几个小时,我快完成了,如果你不喜欢这篇文章,请继续前进,不要投反对票,这样没人能看到它!

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

错误1:“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) 当前上下文中不存在名称“Encoding”

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

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

好的,所以这显然非常令人困惑,因为我一个人做的任何事情或基于答案都行不通,所以我只想在这里发布整个源代码供大家查看,希望这会有所帮助:抱歉,我无法发布GUI,因为我没有足够的 REP,但希望这应该没问题:

使用系统;使用 System.Windows.Forms;

命名空间 XDevkit { 公共部分类 Form1 : Form { 公共 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)

    }
}

}

4

2 回答 2

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");
于 2012-06-21T16:43:47.980 回答
0

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

编辑:

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

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

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

于 2012-06-21T16:47:16.583 回答