포인터 부분 다시 공부해야하나 왜이러지 ㅋㅋㅋㅋㅋ
DWORD 형을 BYTE형 4개의 배열로 쑤셔넣는데 약 15분이나 걸렸네 . . .
예를 들면, BYTE Arr[4], DWORD Value 이렇게 있다면
(DWORD *)Arr = &Value 하면 되겠지 하고 했는데 . . .
( 안돼 !! )
이래저래 삽질하다가, 차분하게 생각해보니 . . . .
답은 . . . .
*(DWORD *)Arr = Value . . . .
자연스럽게 참조 하려하다니 . . .
반대로 BYTE 배열을 DWORD에 넣으려면
Value = *(DWORD *)Arr 하면 되지 않을까 싶다.
아주 기본적인건데, 후우 . . .
그 외 비트연산자로도 가능하다.
( BYTE [4] -> DWORD )
Value = 0
Value += Arr[0]
Value += Arr[1]<<8
Value += Arr[2]<<16
Value += Arr[3]<<24
( DWORD -> BYTE [4] )
Arr[0] = (BYTE)(Value&0xFF)
Arr[1] = (BYTE)((Value>>8)&0xFF)
Arr[2] = (BYTE)((Value>>16)&0xFF)
Arr[3] = (BYTE)((Value>>24)&0xFF)
평소엔 비트연산자로 처리해서 느끼지 못한 부분인데 . . .
바이너리 작업은 이래저래 골아프다 . . .