관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

MultiByteToWideChar 본문

API 관련/Win32 API 함수

MultiByteToWideChar

님투 2007. 11. 8. 23:09
반응형

MultiByteToWideChar

문자열을 와이드 문자열(Unicode 문자열)로 변환합니다.

int MultiByteToWideChar(
    UINT   uCodePage,     // code page
    DWORD  dwFlags,       // 플래그
    PCSTR  pMultiByteStr, // 변환원의 문자열 주소
    int    cchMultiByte,  // 문자열의 길이
    PWSTR  pWideCharStr,  // 버퍼 주소
    int    cchWideChar    // 버퍼 사이즈
);

KERNEL32.DLL

인수

uCodePage

변환시에 사용되는 code page를 지정합니다.이 파라미터는, 인스톨 되고 있을까 시스템으로 사용 가능하다 모든 code page를 지정할 수 있습니다.또, 이하의 값의1개를 지정할 수도 있습니다.

의미
0 (CP_ACP) ANSI code page
1 (CP_OEMCP) OEM code page
2 (CP_MACCP) Macintosh code page
3 (CP_THREAD_ACP) Windows 2000/XP: 호출 스렛드의 ANSI code page
42 (CP_SYMBOL) Windows 2000/XP: 심볼 code page
65000 (CP_UTF7) Windows 98/Me/NT 4.0 이후: UTF-7 (을)를 사용해 변환
65001 (CP_UTF8) Windows 98/Me/NT 4.0 이후: UTF-8 (을)를 사용해 변환

이것을 지정했을 경우, dwFlags 파라미터는 0 (이)가 아니면 안됩니다.

dwFlags

비트 플래그를 지정합니다. 0 또는 이하의 값의 편성을 지정합니다.

의미
0x00000001 (MB_PRECOMPOSED)

composite characters (베이스 캐릭터와 논스페이싱캐라크타가1캐릭터치로 나타내진다)를 사용합니다. MB_COMPOSITE (와)과 조합해 사용할 수 없습니다.

0x00000002 (MB_COMPOSITE)

composite characters (베이스 캐릭터와 논스페이싱캐라크타가 다른 캐릭터치를 가진다)(을)를 사용합니다. MB_PRECOMPOSED (와)과 조합해 사용할 수 없습니다.

0x00000004 (MB_USEGLYPHCHARS)

제어 문자 대신에 그리후를 사용합니다.

0x00000008 (MB_ERR_INVALID_CHARS)

무효인 문자가 맞았을 경우는 함수가 실패해 GetLastError 함수는 1113 (ERROR_NO_UNICODE_TRANSLATION) (을)를 돌려줍니다.

예를 들면, 문자 「 e 」에서는, 「 e 」(이)가 베이스 캐릭터가 되어, 엑센트 기호 「 ` 」(이)가 논스페이싱캐라크타가 됩니다.

pMultiByteStr

변환원의 문자열의 주소를 지정합니다.

cchMultiByte

pMultiByteStr 파라미터로 나타내지는 문자열의 사이즈를 아르바이트수로 지정합니다. -1 (을)를 지정하면, 눌 종단 문자까지로 간주해져 사이즈가 자동적으로 계산됩니다.

pWideCharStr

변환된 문자열을 받는 버퍼의 주소를 지정합니다.

cchWideChar

pWideCharStr 파라미터로 지정되는 버퍼의 사이즈를 문자수로 지정합니다.

0 (을)를 지정하면, 이 함수는 필요한 버퍼 사이즈를 돌려줍니다.

반환값

cchWideChar 파라미터에 0 이외의 값을 지정하고 함수가 성공했을 경우, pWideCharStr 파라미터가 나타내 보이는 버퍼에 카피된 문자수가 돌아갑니다.

cchWideChar 파라미터에 0 (을)를 지정하고 함수가 성공했을 경우, 문자열을 변환하는데 필요한 버퍼 사이즈가 문자수단위로 돌아갑니다.

함수가 실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다. GetLastError 함수는 이하의 몇개의 값을 돌려줍니다.

  • 87 (ERROR_INVALID_PARAMETER)
  • 112 (ERROR_INSUFFICIENT_BUFFER)
  • 1004 (ERROR_INVALID_FLAGS)
  • 1113 (ERROR_NO_UNICODE_TRANSLATION)

해설

pMultiByteStr 파라미터와 pWideCharStr 파라미터에는 같은 주소를 지정 해서는 안됩니다.같은 주소를 지정했을 경우에는 함수는 실패해 GetLastError 함수가 87 (ERROR_INVALID_PARAMETER) (을)를 돌려줍니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

PathAddBackslash(A)  (0) 2007.11.08
OpenMutex(A)  (0) 2007.11.08
MsgWaitForMultipleObjects  (1) 2007.11.08
MoveWindow  (0) 2007.11.08
midiStreamOpen  (0) 2007.11.08
Comments