如何把 LPSTR 型转换成 LPCWSTR 型? 如何把 LPSTR 型转换成 LPCWSTR 型?char[] to LPSTR 或 CString to LPSTR 又该如何呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 指针可以直接强行转换。注意:CString 只能转换成LPCTSTR 不能转换成LPSTR。GetBuffer和ReleaseBuffer函数是为了解决使用strcpy时字符串会超过缓冲区大小的情况. LPCTSTR 重载操作符获得的字符串指针不能作为左值修改其中数据,因为这有可能引起指针越界或使该指针无效.所以要使用Getbuffer和ReleaseBuffer如下: CString str; str = "abcdef"; //strcpy(LPCTSTR(str), "1234567890");是行不通的. LPTSTR pStr = str.GetBuffer(16); //如果不重新分配的话,可能造成 //指针越界 lstrcpy(pStr, "1234567890"); str.ReleaseBuffer(5); //释放缓冲到指定的字符串长度 现在的字符串是"12345" typedef CHAR *LPSTR, *PSTR;所以说定义一个数组:char pszName[] = "12313";其pszName即是个LPSTR指针。 小小学生MFC 求助:帮忙下载PUDN网站资料!!! 咨询! _beginthread不用自己CloseHandle掉线程HANDLE吧? 如何区别物理光驱和虚拟光驱? 请教:多线程调试问题!! ★★★★new和HeapAlloc有什么区别?★★★★ 150分的问题:这个贴50加上这个贴100:http://expert.csdn.net/Expert/topic/2470/2470761.xml?temp=.7569849 这个字符串该怎么写? 如何游戏制作? 关于编写COM库的帮助文件(100分!!!) 哪有des算法的源程序可以下载?
GetBuffer和ReleaseBuffer函数是为了解决使用strcpy时字符串会超过缓冲区大小的情况. LPCTSTR 重载操作符获得的字符串指针不能作为左值修改其中数据,因为这有可能引起指针越界或使该指针无效.所以要使用Getbuffer和ReleaseBuffer如下:
CString str;
str = "abcdef";
//strcpy(LPCTSTR(str), "1234567890");是行不通的.
LPTSTR pStr = str.GetBuffer(16); //如果不重新分配的话,可能造成 //指针越界
lstrcpy(pStr, "1234567890");
str.ReleaseBuffer(5); //释放缓冲到指定的字符串长度
现在的字符串是"12345"
其pszName即是个LPSTR指针。