본문 바로가기
반응형

CString14

[개발/VC++/MFC] CString ↔ char 변환 1. CString을 char으로 변환 CString csTest; csTest = "I Love You"; char* cTest = LPSTR(LPCTSTR(csTest)); 2. char을 CString으로 변환 char cTest[10] = "I Love You"; CString csTest; csTest.Format("%s", cTest); 출처 : http://blog.daum.net/sjdody/5693925 2011. 2. 14.
[개발/MFC] LPSTR LPCTSTR 위험 CStrgin -> char 으로 변환 (LPSTR)(LPCTSTR)csTest은 위험하다.!! -. 유니코드를 고려하지 않았을뿐 아니라 -. 위험하게 내부데이터를 접근합니다. CString strPP; char * chNN = (LPSTR)(LPCSTR)strPP; 이렇게 해서 chNN을 CString의 포인터로 가져 옵니다. (LPSTR)(LPCSTR)strPP 이 부분 에서 이유는 MSDN을 찾아보시면 아시겠지만 CString은 const char * 으로 만 받을수 있답니다. 그래서 (LPCTSTR)strPP 이런 형식으로도 사용합니다. 물론 const char *으로 return되겠죠.. 다시 char *을 필요하신다면 char * chNN = (char *)(LPCTSTR)strPP; 이런 식으로도 사용합니다 char *pstr =.. 2011. 2. 14.
[개발/VC++] 유니코드 버전으로 된 프로젝트에서 CString 를 char* 로 바꾸는 방법 MFC에서 유니코드 버전으로 된 프로젝트에서 CString 를 char* 로 바꾸는 방법은 유니코드 상태에서 CString 을 바로 CHAR* 로 바꾸는 것이 안됩니다. W2A 나 A2W 로 코드 변환을 하거나 wsprintf(); 함수를 이용 하면 됩니다. 유니코드는 사용 되는 바이트 수가 2바이트이고 1바이트 문자열로 변환하면 깨져 버리는 문자열 들이 있는데 처리를 해야 합니다. 유니코드를 멀티바이트 코드로 변환 하려면 char Text[80]; wsprintfA(Text, "%s", L"문자열" ); 멀티바이트 코드를 유니코드로 변환 하려면 WCHAR Text[80]; wsprintfW(Text, L"%s", "문자열" ); 변환될 문자열을 %s(대문자)로 wsprintf()함수를 사용합니다. ※ .. 2011. 2. 8.
[VC++/MFC] CString to char * 와 char * to CString CString -> char * CString str; str = "Hello"; char* ss = LPSTR(LPCTSTR(str)); char * --> CString char ss[] = "Hello"; CString str; str.Format("%s", ss); (Format대신에 GetBuffer()를 써도 됩니다.) 지식인! Environment: Compiled using VC6.0 Sp3 and tested using Win95/98 WinNT4.0 and Win 2000 Here are a few data Conversions with small examples :- PART ONE :- DECIMAL CONVERSIONS Decimal To Hexa :- Use _itoa( ) fu.. 2010. 9. 30.
[VC++] 문자열변환 CString LPSTR WCHAR* LPCWSTR VC++의 문자열 변환중 CString에 관련된 몇가지를 알아보자. CString LPSTR WCHAR* LPCWSTR CString to LPSTR CollapseCString str = _T("My String"); int nLen = str.GetLength(); LPTSTR lpszBuf = str.GetBuffer(nLen); // here do something with lpszBuf........... str.ReleaseBuffer(); LPTSTR to LPWSTR int nLen = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen); C.. 2010. 9. 10.
반응형