고등학교 때 프로그래밍을 배울 때만 해도 그런 게 없었던 것 같은데, 요즘 프로그래밍을 하다보니 '유니코드'와 많이 부딪히고 있어서 복잡하답니다 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에서 확인하도록 합시다 :)

Comments

What's on your mind?

댓글 입력 폼