Я конвертирую код C++ в C#
Скажем, я получил это на С++
int v5;
v5 = (*(_DWORD *)(v4 + 68) ^ (unsigned __int64)(unsigned int)(*(_DWORD *)(v4 + 56) ^ *(_DWORD *)(v4 + 20))) % 9;
В С# это было бы так..
int v5;
v5 = (int)((BitConverter.ToInt32(v4, 68) ^ (ulong)(uint)(BitConverter.ToInt32(v4, 56) ^ BitConverter.ToInt32(v4, 20))) % 9);
Но я получаю ошибки.. с (ulong)
, (uint)
Оператор «^» нельзя применять к операндам типа «int» и «ulong».
Я должен делать
(int)(ulong)(uint)(...)
или что?
v4
актуален, укажите его. - person Jon   schedule 06.09.2011*(_DWORD *)(v4 + XX)
дерьмо обрабатываетсяBitConverter.ToInt32(v4, XX)
очень хорошо.. Я проверил это с другими фрагментами.. но этот действительно поставил меня в тупик. с xor.. и ulong - person SSpoke   schedule 06.09.2011BitConvert.ToUInt32
вместоToInt32
и потеряете часть бросков. Верное преобразование должно выглядеть примерно так:(int)((BitConvert.ToUInt32(v4, 68) ^ (ulong)BitConvert.ToUInt32(v4, 56) ^ BitConvert.ToUInt32(v4, 20)) % 9);
- person user786653   schedule 06.09.2011