게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C# 에서 배열을 구조체로 변환 질문드려요.
게시물ID : programmer_9059짧은주소 복사하기
작성자 : 달려라하니~
추천 : 0
조회수 : 6446회
댓글수 : 5개
등록시간 : 2015/04/02 15:37:38
인터넷 검색해가면 공부중입니다.
 
배열을 구조체로 변환하는 함수인데 전달 인수중에 'Type type' 은 어떤값을 전달해줘야하는지요?
 
 
자료출처:
http://cafe.daum.net/_c21_/bbs_search_read?grpid=1GE41&fldid=JZhy&datanum=5
 
//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; // 구조체 리턴
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호