2012-06-21 1 views
-2

Possible Duplicate:
The best overloaded method match for 'XDevkit.IXboxDebugTarget.GetMemory(uint, uint, byte[], out uint)' has some invalid argumentsЕще нужна помощь! Лучший перегружен матч метод «XDevkit.IXboxDebugTarget.GetMemory (UINT, UINT, байт [], из UINT)» имеет некоторые недопустимые аргументы

Не уверен, почему это проводится голосование вниз, я просто нужна помощь. Я боролся с этим в течение нескольких часов, и я готов к работе, пожалуйста, если вам не нравится, что сообщение просто движется дальше, не проголосуйте за него, так что никто не может его увидеть!

Хорошо, что у меня есть googled и читайте ответы и вопросы, подобные этому навсегда, но не нашли объяснений, которые я могу понять по любой из этих проблем, которые у меня есть, я надеюсь, что кто-то здесь может помочь!

Error1: Лучший перегружен матч метод 'XDevkit.IXboxDebugTarget.GetMemory (UINT, UINT, байт [], из 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); 

    } 

EDIT Текущие ошибки с помощью этого кода

1) Название 'Кодировка' не существует в текущем контексте

2) Лучший перегружена матча метод 'XDevkit.IXboxDebugTarget.GetMemory (UINT, UINT, байт [], из UINT)' имеет некоторые недопустимые 2222arguments

3) Аргумент 3: не может конвертировать из «байт» до «байт []»

Хорошо, так что это, видимо, исключительно запутанным, как ни я одна, либо на основе ответов работает, так что я я просто собираюсь опубликовать весь источник здесь для вас, ребята, чтобы посмотреть и, надеюсь, это поможет: Извините, я не могу p ost изображение графического интерфейса, потому что у меня недостаточно REP, но, надеюсь, все должно быть хорошо:

с использованием системы; с использованием 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) 

    } 
} 

}

+1

Сообщение об ошибке довольно ясно: 'num3' является байтом, и что бы означало' num3 [1] '? Что вы ожидаете от результата? – dlev

+0

Я это знаю, но если вы посмотрите на базовый код, он требует байт и индексатор – user1205336

+0

А, я вижу. Он фактически вызывает массив байтов, тогда как вы передаете один байт. Вы уверены, что правильно используете этот метод? Например, вы назначаете значение 'num4', но' num4' является параметром 'out', который гарантированно будет перезаписан методом. – dlev

ответ

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"); 
+0

Да, я так много понял, но что я делаю вместо этого в качестве вызова базового кода для индексатора и не будет работать без него – user1205336

+0

Не зная базового кода или того, что вы пытаетесь сделать, способ исправить проблему состоит в том, чтобы объявить num3 как тип 'byte []' вместо 'byte' , – CodeHxr

+0

@user, базовый код не требует «индексатора». Он вызывает * массив *. –

0

Это сообщение ясно видно из сообщения об ошибке. num3 не является массивом байтов, поэтому вы не можете получить к нему доступ с индексом массива. Вам нужно будет преобразовать все textbox3.Text в массив байтов, если вы хотите получить к нему доступ, как хотите. Вы не предоставили нам эту информацию.

Edit:

Если вы хотите, чтобы преобразовать значение в текстовое поле в массив байтов, вы можете сделать следующее:

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

Тогда вы можете получить доступ к num3[1] по желанию (при условии, массив является по крайней мере, длина 1).

+0

Какая информация вам нужна? – user1205336

+0

Независимо от того, какое значение вы имеете в 'textBox3.Text', должно быть * байтовым массивом *, а не * байтом *. –

+0

@ Bryan Crosby Как бы я мог преобразовать текст в байтовый массив? – user1205336

 Смежные вопросы

  • Нет связанных вопросов^_^