Char와 WChar의 형 변환을 가능하게 해 주는 함수는?
2008/07/15 18:38
Posted by MAMAolosta Posted in " MX::Programming();/Windows API "
고등학교 때 프로그래밍을 배울 때만 해도 그런 게 없었던 것 같은데, 요즘 프로그래밍을 하다보니 '유니코드'와 많이 부딪히고 있어서 복잡하답니다 T-T 아직도 초급 단계라 코드에 대한 개념도 확실하지 않은데 유니코드가 어쩌고 멀티바이트가 어쩌고 하면 답답하지요. 특히 이렇게 서로 형 변환을 해 줘야 하는 경우가 생기면 정말 답이 없었답니다.
그런데 어제! 드디어 이 두 타입끼리 형 변환을 가능하게 해 주는 함수를 찾았어요. 이런 게 있을 줄은 알았지만 실체를 보고나니 정말이지 너무 기쁘더군요.
먼저 WChar를 Char로 바꿔주는 함수입니다.
WideCharToMultiByte(CP_ACP, 0, WCHARptr, WCHAR 문자열의 길이-wcslen으로 구할 수 있음, CHARptr, CHARptr이 가리키는 버퍼사이즈, NULL, NULL);
size_t wcslen(
const wchar_t *string
);
size_t wcstombs(
char *mbstr,
const wchar_t *wcstr,
size_t count
);
이에 대응되는 함수, 즉 Char를 WChar로 바꿔주는 함수는 다음과 같습니다.
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
size_t mbstowcs(
wchar_t *wcstr,
const char *mbstr,
size_t count
);
함수 이름을 알았으니 자세한 건 MSDN에서 확인하도록 합시다 :)
그런데 어제! 드디어 이 두 타입끼리 형 변환을 가능하게 해 주는 함수를 찾았어요. 이런 게 있을 줄은 알았지만 실체를 보고나니 정말이지 너무 기쁘더군요.
먼저 WChar를 Char로 바꿔주는 함수입니다.
WideCharToMultiByte(CP_ACP, 0, WCHARptr, WCHAR 문자열의 길이-wcslen으로 구할 수 있음, CHARptr, CHARptr이 가리키는 버퍼사이즈, NULL, NULL);
size_t wcslen(
const wchar_t *string
);
size_t wcstombs(
char *mbstr,
const wchar_t *wcstr,
size_t count
);
이에 대응되는 함수, 즉 Char를 WChar로 바꿔주는 함수는 다음과 같습니다.
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
size_t mbstowcs(
wchar_t *wcstr,
const char *mbstr,
size_t count
);
함수 이름을 알았으니 자세한 건 MSDN에서 확인하도록 합시다 :)
이올린에 북마크하기
Comments