Using Functions That Have No Unicode Equivalents
Windows functions that have not been exported in a Unicode version have
typically been replaced by more powerful or extended functions that do support
Unicode. If you are porting code that calls the
OpenFile function, for example, you can support Unicode by using the
CreateFile or
CreateFileEx function instead.
If a function has no Unicode equivalent, you can map characters to and from
8-bit character sets before and after the function call. For example, the
number-formatting functions
atoi and
itoa use only the digits 0 through 9. Normally, mapping Unicode to 8-bit
characters could cause loss of data, but you can avoid this by making your code type
independent and conditionalizing the expressions. For example, the following
statements are type dependent and should be changed to support Unicode.
char str[4];
num = atoi(str);
These statements could be rewritten as follows to make them type independent.
TCHAR tstr[4];
CHAR strTmp[SIZE];
#ifdef UNICODE
wcstombs(strTmp, (const wchar_t *) tstr, sizeof(strTmp));
num = atoi(strTmp);
#else
num = atoi(tstr);
#endif
In this example, the
wcstombs function is the standard C function that translates Unicode to ASCII. The
example relies on the fact that the digits 0 through 9 can always be translated
from Unicode to ASCII, even if some of the surrounding text cannot. The
atoi function stops at any character that is not a digit. You can use the
LCMapString function if you need to process text that includes the native digits provided
for some of the scripts in Unicode.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database