MFC库的CString类是C++语言的一个很重要的扩展,CString类有许多非常有用的操作和成员函数,但最重要的一个特点莫过于他的动态内存分配,完全不用担心CString对象的大小。但许多库函数需要使用字符数组,因此有时必须将CString和字符数组混用。CString类提供了一个const char*()操作符,它可以将CString对象转换成一个字符指针。
LPCTSTR并不是一个指向CString对象的指针,而是一个支持Unicode的const char*的替代版本。
如果正在编写一个带字符参数的函数,则可以在设计时做出选择,下面是一些程序设计规则:
1. 如果函数不改变字符串的内容,而又愿意使用C运行时函数(如strncpy等函数),则可以使用const char*参数;
2. 如果函数不改变字符串的内容,但又希望在函数内使用CString的成员函数,则可以使用const CString&参数;
3. 如果函数要改变字符串的内容的话,请使用CString&参数。