Unicode
characters are invented to accommodate additional
international characters apart from English. Earlier
characters were represented in ASCII formats with each
character occupying 1 byte of memory. But with Unicode,
each character is represented with 2 bytes.
There is one more type of character set using 2 bytes
i.e.MBCS (Multi Byte
Character Set) or DBCS
(Double Byte Character Set). In fact any article about MFC
Unicode programming,
will have a reference to the MBCS and DBCS.
This character set is used for single
locale specific programming i.e., it can support
only one locale set in an application. But using Unicode
will enable the programs to use multiple locale
character sets simultaneously.
As the benefits of Unicode
programming looks
immense as described above, it is imperative for any
application to give support to Unicode. MFC
supports Unicode in a very flexible way by
providing a single line macro to convert between a Unicode
and non-Unicode application.
MFC
Unicode Macro:
The macro,
#define _UNICODE
will make the application Unicode enabled. But a
mere use of the macro will not be enough to make an
application Unicode enabled. Some of the
important things the application should take care of are
listed below.
- The
entry point of the application should be set as
wWinMainCRTStartup
- Strings
should be declared and used as TCHAR type.
- The
Length of the string should be passed as Length *
sizeof(TCHAR)
- Use
string functions declared in TCHAR.H viz., _tcscat,
__tcscpy, _tcscmp etc.,
Using the TCHAR programming set will
enable the compiler to choose between Unicode C
Runtime library and non-Unicode library. If the
program is defined to be a UNICODE program,
it will expand the TCHAR routines to ASCII
functions. If the program does not have any UNICODE
macro defined, it will be built as an ASCII application.
MFC
Unicode - Points to be Noted:
- Using
Unicode makes Windows NT/2000 efficient as Unicode
is the standard character set used in processing
characters. Any non-Unicode literals will be
converted back and forth for manipulations.
- Win
98 platforms do not support Unicode.