在EVC下转换CString和TCHAR的方法

在EVC下转换CString和TCHAR的方法

在EVC下写程序,经常会遇到CString和TCHAR之间相互转换的问题。

CString->TCHAR*的转化可以用函数GetBuff()

函数原型为:LPTSTR GetBuffer( int nMinBufLength );
CString str("CString");
TCHAR* szMsg = new TCHAR[100];
//其参数为CString字符串的长度
szMsg = str.GetBuffer(str.GetLength());
str.ReleaseBuffer();
delete []szMsg;
szMsg = NULL;

TCHAR*->CString的转化

TCHAR szTchar[18] = L"TCHAR";
CString str;
str.Format(_T("%s"),szTchar);


在EVC中,字符串的一些函数也都发生了变化,例如字符串拷贝,比较和连接变成了wcscpy 、acscmp 和wcscat。

还有一点要注意:在EVC下编程很容易发生内存泄漏。这一点在VC中体现的不是很明显,但是在EVC中特别明显,有一个new或malloc来申请内存,一定要有相应的delete或free来释放内存,否则很容易发生死机。