비주얼 스튜디오를 사용하면서 유니코드에 부딪히게 된다... 그에 따른 매크로 함수가 있다! 왜 지금알았는가? ㅜ_ㅜ....젠장~ T2A, A2T 매크로 함수가 있다 열심히 사용해보자^^!! 추가해야되는 해더파일 : atlbase.h TCHAR buffer[100]; char * char_buffer = T2A(buffer); #include // Unicode to Ansi USES_CONVERSION; CStringA strTemp; strTemp = T2A( (TCHAR*)str ); // Ansi to Unicode USES_CONVERSION; CString strTemp; strTemp = A2T( (char*)str ); 이렇게 사용을 하면~^________________^a 된다! 후훗.
CString -> char (포인터 값으로 저장) CString str = "Hello"; char * ch = NULL; ch = (LPSTR)(LPCSTR)str; 또는 ch = str.GetBuffer(str.GetLength()); // str의 포인터 값을 ch에 저장한다. CString -> char (배열에 복사) CString str = "Hello"; char ch[100] = {0,}; memcpy(ch, (LPSTR)(LPCSTR)str, str.GetLength()); // NULL을 만나기 전까지의 문자를 str에서 ch로 복사한다. char -> CString char ch[] = "Hello"; CString str; str.Format("%s", ch); // NULL을 만..
// 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..
cannot convert parameter 1 from 'char [40]' to 'LPWSTR' 에러 발생시 해결 방법 VS.Net 2005에서 사용해본 결과 기본적으로 'LPWSTR' 타입을 사용하고 있었으므로.. wchar_t * pExeFile = ...; wchar_t * pModuleFile = ...; swprintf(pExeFile, L"%s", pModuleFile); 이처럼 하는게 좋을 거 같다.. swprintf(pExeFile, L"%s", pModuleFile); 위 부분에서 L을 빼먹으면 또 에러가 나니 조심... char * pExeFile = ...; char * pModuleFile = ...; sprintf(pExeFile, "%s", pModuleFile); or wc..