Показано с 1 по 1 из 1
-
31.07.2012, 10:53 #1
- Регистрация
- 24.09.2011
- Сообщений
- 1
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
ReadProcessMemory и struct возвращает нулевое значение
linkBaffs[0] - это количество элементов, где по struct TypeBaffs 18 байт в каждом.
linkBaffs[2] - это адрес, где читаем, проверено через MessegeBox указано правильное значение, проверено через ArtMoney
BufBaffs - это буфер, куда должно складываться массивом в формате struct TypeBaffs.
Класс public partial class Form1 : Form (часть)
Код:WinAPI.TypeBaffs[] BufBaffs = new WinAPI.TypeBaffs[linkBaffs[0]]; //MessageBox.Show(BufBaffs.Length.ToString()); WinAPI.ReadProcessMemory( // Читаем данные объекта proc.Handle, linkBaffs[2], BufBaffs, linkBaffs[0] * 0x12, out m_bytesRead );
Код:[DllImport("Kernel32.dll", SetLastError = true)] public static extern bool ReadProcessMemory( IntPtr hProcess, uint lpBaseAddress, TypeBaffs[] lpBuffer, uint nSize, out uint lpNumberOfBytesRead ); public struct TypeBaffs { public uint idSkillType; public uint idSkill; public uint id; public uint idLevelType; public ushort idLevel; }
Итоговый результат ожидается в BufBaffs, но переменная хоть и массивом, но значения там все нулевые (например BufBaffs
[0].idSkillType). Непонятно в чем подвох ?
В то же время читая без struct
Пример
Код:uint[] temp1 = new uint[2]; WinAPI.ReadProcessMemory( // Читаем указатели на персональные данные proc.Handle, temp[3] + 0x220, temp1, 0x8, out m_bytesRead );
Как достичь возврата НЕнулевого значения с struct?
Похожие темы
-
есть программа не просто для изменения голоса, а чтобы воспроизвести голос конкретног
от Pavelasd в разделе СОФТ (SOFT)Ответов: 1Последнее сообщение: 20.09.2011, 00:18 -
Искажение моего голоса.
от artixid в разделе Общие вопросыОтветов: 0Последнее сообщение: 24.02.2011, 17:35 -
Изменение голоса
от hyligan в разделе МультимедиаОтветов: 0Последнее сообщение: 04.02.2010, 22:50
Социальные закладки