인터넷 검색해가면 공부중입니다.
배열을 구조체로 변환하는 함수인데 전달 인수중에 'Type type' 은 어떤값을 전달해줘야하는지요?
자료출처:
//byte 배열을 구조체로
public static object ByteToStructure(byte[] data, Type type)
{
IntPtr buff = Marshal.AllocHGlobal(data.Length); // 배열의 크기만큼 비관리 메모리 영역에 메모리를 할당한다.
Marshal.Copy(data, 0, buff, data.Length); // 배열에 저장된 데이터를 위에서 할당한 메모리 영역에 복사한다.
object obj = Marshal.PtrToStructure(buff, type); // 복사된 데이터를 구조체 객체로 변환한다.
Marshal.FreeHGlobal(buff); // 비관리 메모리 영역에 할당했던 메모리를 해제함
if (Marshal.SizeOf(obj) != data.Length)// (((PACKET_DATA)obj).TotalBytes != data.Length) // 구조체와 원래의 데이터의 크기 비교
{
return null; // 크기가 다르면 null 리턴
}
return obj; // 구조체 리턴
}