首页 MFC 基础类 使用string而不是CString的一个必要理由
使用string而不是CString的一个必要理由 PDF 打印 E-mail
用户评价: / 0
好 
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。真是不错。