Develop
2013.04.23 15:40
[c++] mfc 이용한 기본적인 형변환 예제
조회 수 11597 댓글 0
▶ CString -> BYTE
BYTE* temp; CString cmd; 에서 cmd 의 값을 temp에 할당하려 할때. temp=new BYTE[255]; temp=(LPBYTE)(LPCSTR)cmd; delete []temp;
or
CString str = _T("abcd"); BYTE* pbyte = new BYTE[256]; int nSize; nSize = str.GetLength(); CopyMemory( pbyte, str.GetBuffer(nSize), nSize ); pbyte[nSize] = 0;
or
strcpy(szNamePlace,(LPCTSTR)name);
or
CString str = "string"; BYTE* pByte; pByte = (BYTE*)(LPTSTR)(LPCTSTR)str;
▶ BYTE -> CString
CString testString; BYTE testByte; testString.Format( "%s", testByte );
▶ CString -> BYTE *
CString name = "몽룡이"; BYTE byte[26] = {0}; BYTE bName[26] = {0x0,}; sprintf((char*)byte, "%s", name); memcpy(bName, byte, 26); CString strTmp1, strTmp2; strTmp1 = ""; strTmp2 = ""; for(int i=0; i<26; i++) { strTmp1.Format("%02X ", bName[i]); strTmp2 += strTmp1; } MessageBox(strTmp2, "", 0); //26바이트의 크기의 이름이다. //남는 공간은 0으로 채워진다
▶ CString -> int
CString의 문자열을 바로 숫자로 바꾸는것은 아직 보지 못했습니다.
아마 atoi()나 atod()의 C함수를 사용해야 될것 같네요.
도움말을 참고하세요.
▶ int -> CString
CString str; int i = 6; str.Format("%d",i); // str에 6의 문자가 들어갑니다.
▶ BYTE -> int, int -> BYTE
// 바로 형변환으로 가능합니다. // 주의 : 작은 크기로 들어가기 때문에 // 255 이상의 값은 엉뚱하게 동작하겠지요. bt = (BYTE)i; i = (int)bt;
▶ CString -> char* 변환
char * ch; CString *str; 1) ch = (LPSTR)(LPCSTR)str; 2) ch = str.GetBuffer(str.GetLength()); 3) wsprintf( ch, "%s", str);
▶ char* -> CString 변환
//1) str = (LPCSTR)(LPSTR)ch; //2) str = ch;
참고)
LPSTR 은 char* 입니다.
LPSTR : char stirng의 32비트 포인터, char* 와 같다.
LPCTSTR : Constant character String의 32비트 포인터
UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형
BYTE : 8비트 unsigned 정수
1.CString 클래스의 GetBuffer()는 CString을 char *로 바꿔줍니다.
ex)
CString strTemp = _T("test"); char *getTemp=NULL; getTemp = malloc(strTemp.GetLength()+1); strcpy(getTemp, strTemp.GetBuffer(strTemp.GetLength()); printf("결과:%sn", getTemp); free(getTemp);
2. operator LPCTSTR ()도 마찬가지입니다.
ex)
CString strTemp = _T("test"); char *getTemp = (LPSTR)(LPCSTR)strData;
CString -> BYTE* 변환
CString str="1234"; BYTE *pbyte; pbyte = (BYTE(LPSTR)(LPCSTR)str; CString str = _T("abcd"); BYTE* pbyte = new BYTE[256]; int nSize; nSize = str.GetLength(); CopyMemory( pbyte, str.GetBuffer(nSize), nSize ); pbyte[nSize] = 0;
CString -> char* 변환
char * ch; CString *str; //1) ch = (LPSTR)(LPCSTR)str; //2) ch = str.GetBuffer(str.GetLength()); //3) wsprintf( ch, "%s", str);
char* -> CString 변환
//1) str = (LPCSTR)(LPSTR)ch; //2) str = ch;
[참고]
CString을 const char* 형태로 변경 -> (LPTSTR)(LPCTSTR)CString
LPCSTR : A 32-bit pointer to a constant character string.
LPSTR : A 32-bit pointer to a character string.
LPCTSTR : A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.
LPTSTR : A 32-bit pointer to a character string that is portable for Unicode and DBCS.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
527 | Develop | [c++] winsock을 이용한 서버,클라이언트와 ssl서버,클라이언트 | hooni | 2013.04.23 | 7686 |
526 | Develop | [c++] mfc이용한 트레이아이콘(TrayIcon) 클래스 예제 프로젝트 | hooni | 2013.04.23 | 9334 |
525 | Develop | [c++] mfc 이용한 트레이아이콘(TrayIcon) 클래스 예제 프로젝트 | hooni | 2013.04.23 | 8912 |
» | Develop | [c++] mfc 이용한 기본적인 형변환 예제 | hooni | 2013.04.23 | 11597 |
523 | Develop | [c++][mfc] 파일 입출력 샘플 (한줄씩 읽어서 다른 파일에 쓰기) | hooni | 2013.04.23 | 15170 |
522 | Develop | [c++] mfc 파일 한줄씩 읽기.. ㅋㅋ | hooni | 2013.04.23 | 28855 |
521 | Develop | [c++] mfc 간단한 파일 입출력 예제 | hooni | 2013.04.23 | 13656 |
520 | Develop | [c++] mfc 조건별 파일 검색 프로그램 소스 ㅋㅋ 19 | hooni | 2013.04.23 | 11552 |
519 | Develop | [c#] 본현이형 논문 자료 (HIDS)ㅋㅋ | hooni | 2013.04.23 | 8291 |
518 | Develop | 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ | hooni | 2013.04.23 | 12356 |
517 | Develop | [vb] 64bit RSA 프로그램 소스 ㅋㅋ | hooni | 2013.04.23 | 8331 |
516 | Develop | [c++] MFC 모든 헤더와 라이브러리 설명 | [교류]Programming | hooni | 2013.04.23 | 7552 |