| 使用string而不是CString的一个必要理由 |
|
| MFC - 基础类 | ||||
| 作者:Administrator | ||||
| 周日, 20 7月 2008 08:16 | ||||
|
用mfc的人总是使用CString,很少用c++标准库中的string,认为无所谓同时用两个类。 而且CString是mfc里面的一个很基础的类,mfc大多数函数都会用它当参数或者返回值,或者有很多对应的转换函数,因此,使用mfc就会大量使用CString。 但是却有一个使用MFC却还得使用<string>而不是CString的一个必要理由。那就是在一个mfc工程中,需要同时使用ansi和unicode的string,这个时候CString无能为力了。 如果你定义了UNICODE,那么CString就一直是UNICODE的,你想有个ansi的string成员,或者在某个函数内部使用ansi的string,CString也做不到。(也许可以用#ifdef UNICODE #undef UNICODE #endif来实现?) 而string则不存在这个问题,因为它有两个不同的类来表示ansi和unicode:string和wstring。真是不错。
|
||||