Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Feb 11, 2008

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\n?;
      else
         cout << ?Not a single-byte character set\n?;
   }
Alexander Ocher
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap