// CString -> wchar_t * -_-;;;;; 이상함..;; CStringW aaa(_T("hello!")); wchar_t *a = (wchar_t *)aaa.GetBuffer(); MessageBoxW(NULL, a, a, 0); //이것도.... 되긴되는데..;;;; wchar_t wTemp[1024] = L"\0"; MultiByteToWideChar(CP_ACP, 0, m_szNotice,m_szNotice.GetLength(),wTemp,1024); // wchar_t * -> CString 변환 wchar_t *aaa = L"Hello, World!"; CString temp(aaa); m_szText = temp;
// char to LPCWSTR void CharToWChar( const char* pstrSrc, wchar_t pwstrDest[] ) { int nLen = ( int )strlen( pstrSrc ) + 1; mbstowcs( pwstrDest, pstrSrc, nLen ); } // LPCWSTR to char void WCharToChar( const wchar_t* pwstrSrc, char pstrDest[] ) { int nLen = ( int )wcslen( pwstrSrc ); wcstombs( pstrDest, pwstrSrc, nLen + 1 ); } ///////////////////////////////////////////////////////////////////////..
WideCharToMultiByte(CP_ACP, 0, WCHARptr, -1, CHARptr, CHARptr이 가리키는 버퍼사이즈, NULL, NULL); -- 2002. 10. 29. 덧붙힘 중간에 인자 -1 이 아니고 WCHAR 문자열의 길이다... WCHAR 문자열 길이는 wcslen 로 구할수 있다. size_t wcslen( const wchar_t *string ); 그리고 저거 말고 바꿔주는게 이것도 있지요~ size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count ); 반대역할 하는 함수는 int MultiByteToWideChar( UINT CodePage, // code page DWORD dwFlags, // characte..
recv ( s, (char *)buf, len*2, flags ); ;; 답변이 너무 간단한가요?? 유니코드는 2바이트씩이지요.. 포인터 캐스팅 해주고.. 걍 2배로 받으면 됩니다;;; len 이 글자수가 아닌 바이트라면.. recv ( s, (char *)buf, len, flags ); 그냥 이렇게 받으면 되구요.. 허무 ㅜㅜ.... 뭐 하나 알았다!! 그래도 훗! 유니코드 항상 검색하잣! ㅠㅠ!!