Optimize the Performance of Your Internationalized Applications

Optimize the Performance of Your Internationalized Applications

More and more Windows applications are internationalized to take advantage of the global marketplace. However, multi-byte string handling functions may impact program’s performance and should not be used with single-byte character sets (SBCS). One workaround for this is to use a compile-time parameter and create two executables: one for a single-byte code pages and one for multi-byte code pages. An example of how to do this can be found in this Microsoft article.

Another method is to use the GetCPInfo function to determine at run-time whether the program is running on a system that uses SBCS. This method creates only one executable file. The GetCPInfo function is described on MSDN here. Its extended version is called GetCPInfoEx. This function returns the maximum number of bytes for a character in the current code page in the CPINFO structure member called MaxCharSize, as in the example below:

   CPINFO cpinfo;   if (GetCPInfo(CP_ACP, &cpinfo))   {      if (cpinfo.MaxCharSize == 1)         cout <


Share the Post: