Set the Unicode compiling environment in vc6.0

Source: Internet
Author: User

VC ++ 6.0 supports Unicode programming, but the default value is ANSI. Therefore, developers can easily write Unicode-Supported Applications by slightly changing the coding habits.

Using VC ++ 6.0 for Unicode programming mainly involves the following tasks:

1. Add Unicode and _ Unicode preprocessing options for the project.
Specific steps: open [project]-> [settings…] Dialog box, which is removed from the "Preprocessor" in the C/C ++ label dialog box
_ MBCS, plus
_ Unicode, Unicode. (Note that separate them with commas ).
Before Unicode and _ unicod e are defined, all functions and types Use the ANSI version by default. After Unicode and _ Unicode are defined, all the MFC classes and Windows APIs have been changed to the wide-byte version.

2. Set the program entry point
Because the MFC application has a program entry point dedicated to Unicode, we need to set the entry point. Otherwise, a connection error occurs.
To set an entry point, open [project]-> [set…]. Dialog box, in
Output category of The Link Page
Enter entry-point symbol
Wwinmaincrtstartup.

3. Use ANSI/Unicode Universal Data Types
Microsoft provides some common data types compatible with ANSI and Unicode. Our most common data types include _ T, tchar, lptstr, and lpctstr.
By the way, lpctstr and const tchar * are exactly the same. Here, l indicates the long pointer, which is left behind for compatibility with Windows 3.1 and other 16-bit operating systems. In Win32 and other 32-bit operating systems, the long pointer, near pointer, and far modifier are both intended for compatibility and have no practical significance. P (pointer) indicates a pointer; C (const) indicates a constant; t (_ t macro) indicates compatibility with ANSI and Unicode, STR (string) this variable is a string. In summary, we can see that lpctstr indicates a string that points to a fixed address and can change the semantics according to some macro definitions. For example:

Tchar * sztext = _ T ("Hello !"); Tchar sztext [] = _ T ("I Love You"); lpctstr lpsztext = _ T ("Hello everyone !");

It is best to change the parameters in the function, for example:

MessageBox (_ T ("hello "));

In fact, in the preceding statement, even if you do not add a _ t macro, The MessageBox function will automatically forcibly convert the "hello" string. However, we recommend that you use the _ t macro to indicate that you are aware of Unicode encoding.

4. Modifying string operations

Some string operation functions need to obtain the number of characters (sizeof (szbuffer)/sizeof (tchar) of the string, while other functions may need to obtain the number of bytes of the string sizeof (szbuffer ). You should pay attention to this problem and carefully analyze the string operation functions to confirm the correct results.
ANSI operation functions start with STR, such as strcpy (), strcat (), strlen ();
Unicode operation functions start with the WCS, such as wcscpy, wcscpy (), and wcslen ();
ANSI/Unicode operation functions start with _ TCS _ tcscpy (C Runtime Library );
ANSI/Unicode operation functions start with lstr lstrcpy (Windows function );
Considering compatibility between ANSI and Unicode, we need to use a universal string operation function starting with _ TCS or starting with lstr.

Note: This article Reprinted from: http://ipedo.blog.sohu.com/88199794.html

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.