EQuestionAnswers.com Computer/Electronics Questions and Answers
C, C++, VC++, COM/DCOM, DLL and more
#Login #Sign up  Facebook Twitter TGoogle+

#Previous question #Index of VC++/WIN32/MFC Questions #Next question

Multibyte string is the name for ASCII strings and wide character is the name for unicode. We can convert these wide character to multibyte or vice versa. We can do it with Win32 API or C standard library or by ATL/MFC macros. We can choose any of the mechanism depending on our application or component framework.

Win32 API

UNICODE String => [WideCharToMultiByte] => ASCII string
ASCII string => [MultiByteToWideChar] => UNICODE String

The MultiByteToWideChar function maps a character string to a wide-character (Unicode) string. The character string mapped by this function is not necessarily from a multibyte character set.

int MultiByteToWideChar(
  UINT CodePage,
  DWORD dwFlags,
  LPCSTR lpMultiByteStr,
  int cchMultiByte,
  LPWSTR lpWideCharStr,
  int cchWideChar
CodePage - code page
dwFlags - character-type options
lpMultiByteStr - address of string to map
cchMultiByte - number of bytes in string
lpWideCharStr - address of wide-character buffer
cchWideChar - size of buffer

The WideCharToMultiByte function maps a wide-character string to a new character string. The new character string is not necessarily from a multibyte character set.

int WideCharToMultiByte(
  UINT CodePage, 
  DWORD dwFlags, 
  LPCWSTR lpWideCharStr, 
  int cchWideChar, 
  LPSTR lpMultiByteStr, 
  int cchMultiByte, 
  LPCSTR lpDefaultChar,
  LPBOOL lpUsedDefaultChar
CodePage - code page
dwFlags - performance and mapping flags
lpWideCharStr - address of wide-character string
cchWideChar - number of characters in string
lpMultiByteStr - address of buffer for new string
cchMultiByte - size of buffer
lpDefaultChar - address of default for unmappable characters
lpUsedDefaultChar - address of flag set when default char. used

C STDIO library

UNICODE String => [wcstombs] => ASCII string
ASCII string => [mbstowcs] => UNICODE String

ATL/MFC macros

UNICODE String => [W2A/W2CA] => ASCII string
ASCII string => [A2W/A2CW] => UNICODE String

You have viewed 1 page out of 109. Your VC++ learning is 0.00% complete. Login to check your learning progress.

 Vote 0

Similar topics related to this section

#Programming Windows, Fifth Edition (Developer Reference)
#Programming Applications for Microsoft Windows (Microsoft Programming Series)
#Programming Windows with MFC, Second Edition
#Visual C++ Programming
#Programming Microsoft Visual C++, Fifth Edition

* #1 webmaster Sat 26 Apr/2014 23:38:24(GMT)  Like 0 Unlike 0

Dear Users,

We are pleased to inform you that a forum/blog has been incorporated with www.mybestnotes.co.in. You are welcomed to add your comments, requests, codes, solutions and feedback to it. Please login(if already a member) or signup(for free) to avail to this facility.


Your message goes here:

My Post:*
Secutiry Code: ******  *
Preview this compose before posting this in discussion forum.
  1. Use [Sxx] code to show smiles. Example [S02]
  2. Use [URL ], example [URL http://www.google.com/]
  3. To display code or un formatted text use [CODE] [/CODE]. Example: [CODE] printf("Hello world"); [/CODE]
 [S01]   [S02]   [S03]   [S04]   [S05]   [S06]   [S07]   [S08] 
 [S09]   [S10]   [S11]   [S12]   [S13]   [S14]   [S15]   [S16] 
 [S17]   [S18]   [S19]   [S20]   [S21]   [S22]   [S23]   [S24] 

Note: Only members are allowed, * fields are mandatory.