У меня два вопроса. Они оба касаются пустоты в C ++, которую я пытаюсь перевести в C #.
C ++ код
void Func_X_2(LPBYTE stream, DWORD key, BYTE keyByte)
{
stream[0] ^= (stream[0] + LOBYTE(LOWORD(key)) + keyByte);
stream[1] ^= (stream[1] + HIBYTE(LOWORD(key)) + keyByte);
stream[2] ^= (stream[2] + LOBYTE(HIWORD(key)) + keyByte);
stream[3] ^= (stream[3] + HIBYTE(HIWORD(key)) + keyByte);
stream[4] ^= (stream[4] + LOBYTE(LOWORD(key)) + keyByte);
stream[5] ^= (stream[5] + HIBYTE(LOWORD(key)) + keyByte);
stream[6] ^= (stream[6] + LOBYTE(HIWORD(key)) + keyByte);
stream[7] ^= (stream[7] + HIBYTE(HIWORD(key)) + keyByte);
}
Первый вопрос:
DWORD - это UInt32, BYTE - это байт, но что такое LPBYTE? Как использовать его как массив?
Второй вопрос:
Как использовать LOBYTE, HIBYTE, LOWORD, HIWORD в C #?
EDIT
Вот как вызывается функция:
Код C ++
Func_X_2((LPBYTE)keyArray, dwArgs[14], keyByte);
keyArray - это DWORD (UInt32), dwArgs - это массив dword.KeyByte - это байт.
Заранее спасибо.