MFC 이용하여 BYTE[] 배열을 CString 문자열로 변환하는 예제입니다.
3가지 예제를 소개할텐데, 하나씩 살펴 보겠습니다. 우선, 아래 예시를 보죠.
1 2 3 4 | BYTE tmp[4] = { 0x01, 0x02, 0x03, 0x04 }; CString text; text.Format("%4.4s", tmp); | cs |
1번 라인에서 BYTE 배열을 초기화하고,
3번 라인에서 CString 변수를 선언합니다.
4번 라인에서 %4.4s 형태로 포맷을 받아 바이트 배열을 문자열로 변환합니다.
아니면 CString 생성자를 통해 변환할 수도 있습니다.
1 2 3 4 5 6 7 | BYTE x[4]; x[0] = 'A'; x[1] = 0; x[2] = 'B'; x[3] = 1; CString str((LPCSTR) &x, sizeof(x)); | cs |
Long Pointer Const 형태로 변환하네요. 음 ...
마지막은 소스가 길어서 개인적으로 안 좋아하는 형태입니다.
1 2 3 4 5 6 7 8 9 10 11 12 | BYTE tmp[4] = { 0x01, 0x02, 0x03, 0x04 }; CString str = TEXT(""); CString s; for(int i = 0; i < 4; i++) { str.Format(L"%C", x[i]); s += str; } AfxMessageBox(s); | cs |
for문을 돌린다는 자체가 썩 마음에 들지 않는군요.
이중에서 마음에 드는 소스를 골라서 사용하시면 되겠습니다. MFC BYTE[] to CString - 바이트 배열 문자열 변환 글은 여기서 마칩니다. c++에서 string으로 테스트 해봤는데 일단 잘 됩니다.
아래 MFC 관련 글도 추가로 읽어보세요.
관련 글
MFC, 파일 크기 알아보는 함수 StrFormatByteSize()
[MFC강좌] 폴더 파일 경로 1. PathFileExists 등 12개 함수
TCHAR -> string 변환, C++ 문자열 자료형 컨버팅 방법
MFC, CString to Char* (문자열 변환, LPSTR, LPCTSTR)
MFC 대문자 변환, 문자열 CString을 대소문자로 변환
댓글