可以讲一讲CString和LPTSTR以及char * 之间的区别吗? 他们之间怎么转换?什么情况下可以相互替代使用?还有用CString可以访问到字符串中的字符吗?怎么访问? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个字符串的包装类LPTSTR lpstr = (LPTSTR)(LPCTSTR)str;//记不清了,是个强制转化操作符。不过不建议这么用,详细清看effective c++; LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的8位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的16位双字节字符数组指针。在VC++中,还有类似的字符串类型,如LPTSTR、LPCTSTR等CString操作的字符类型是TCHAR。CString theString( "This is a test" );LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString; CString theString( "This is a test" );LPTSTR lpsz = new TCHAR[theString.GetLength()+1];_tcscpy(lpsz, theString); 若将char*转换成CString,直接赋值就可以 转化是可以的,但不建议这么做。因为CString中的字符串是由这个类本身管理的,你要是想要最好通过它的接口获得。要是直接获得它的数据存储指针并改变了其中数据的话,在CString自己操作本身数据时就容易出错。想要得到指向CString内字符串的指针有两种方法:一是通过CString重载的操作符(LPCTSRT);第二是调用CString::GetBuffer()。要访问CString内的某个字符可以调用CString重载的操作符[]。如:CString str("abc");char temp=str[1];//temp='b' 为什么Activex控件下载总是失败 很久没上论坛了 Ultimate Toolbox 如何使用 准备重新开发 全部修改了 如何把List Control控件中所选中行的所有数据提取到变量中? 新手基础问题,请帮忙! 有关多文档程序中关闭子窗口引起的标题改变的问题? 关于用VC做DLL在PB中调用的问题 新手请教几个简单的问题 研二实习 谁能帮我写一个列出局域网上当前已开机的所有机器名? 基于对话框的应用程序,怎么使某个菜单项前打勾
LPTSTR lpstr = (LPTSTR)(LPCTSTR)str;//记不清了,是个强制转化操作符。不过不建议这么用,详细清看effective c++;
CString操作的字符类型是TCHAR。CString theString( "This is a test" );
LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString; CString theString( "This is a test" );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString);
若将char*转换成CString,直接赋值就可以
想要得到指向CString内字符串的指针有两种方法:一是通过CString重载的操作符(LPCTSRT);第二是调用CString::GetBuffer()。
要访问CString内的某个字符可以调用CString重载的操作符[]。如:
CString str("abc");
char temp=str[1];//temp='b'