devxlogo

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 << ?Single-byte character set
?;      else         cout << ?Not a single-byte character set
?;   }
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist