-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)

私が持っているものNEW

        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[]」に変換できません

わかりました。これは、私が単独で、または回答に基づいて何も行わないため、明らかに非常に混乱します。ソース全体をここに投稿して、皆さんが閲覧できるようにします。お役に立てば幸いです。申し訳ありませんが、の写真を投稿することはできません。十分なREPがないためGUIですが、うまくいけばこれで問題ありません。

システムを使用する; 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)

    }
}

}

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 に答える