clwn.net
当前位置:首页 >> lpCtstr和Cstring的区别 >>

lpCtstr和Cstring的区别

CString LPCTSTR区别联系 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。 typed...

dlg.GetPathName() 返回的是一个临时对象,这个临时对象在表达式结尾就析构了 出了这个表达式之后,lpszPathName指向的就是已经不存在的对象的一部分

一般来说LPCTSTR是不能转化到CString的,我是指VS2010工程里面,这是因为UNICODE的原因。楼主可以这么做: CStringA strXXX; CStringW strYYY; 然后利用 strXXX去获取值,然后 strYYY = strXXX; 接下来将LPCTSTR lp = (LPCTSTR)strYYY; 就可以了。

(LPCTSTR)str 调用CString的 类型转换操作符 operator LPCTSTR() , 获取CString内部字符串的地址。 (LPTSTR)把LTCTSTR 的const去掉。 这么做是不安全的,如果要写CString的内部Buffer,最好使用GetBuffer分配,写完之后,再调用ReleaseBuffer。

如果是MBCS编码: CString sss; string ss = (LPCSTR)sss; 如果是UNICODE编码: #include USES_CONVERSION; CString sss; string ss = W2CA((LPCWSTR)sss);

LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。LPCTSTR类型:L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来...

按照下面的规律来理解: 1) char* 和LPSTR等价,就是普通的字符串。 2) W的意思是Width,带W的都是宽字符串,在UNICODE的环境下使用,也就是一个字符占两个字节,有wchar_t, LPWSTR, LPCWSTR, CStringW 3) C的意思Const,带C的都是常量字符串,...

unicode 下CString采用双字节,英文字母也占两字节,所以会出现你说那种多了0情况,至于你显示的是e.m.a.i.l肯定是你吧这个双字节编码当成多字节输出了。 顺便说下vc下的编码,分为多字节和双字节,双字节就是unicode(我们也说宽字符) 在vc里 ...

string是方便的,可以从几乎所有的字符串构造而来,包括CString和char*; CString次之,可以从基本的一些字符串变量构造而来,包括char*等; char*没有构造函数,仅可以赋值; 举例: char* psz = “joise”; CString cstr( psz ); string str( cs...

CString可以作为实参传递,也可以使用形参,都没有问题。 Funca() { CString m_xiaoming = "test"; Funcb(m_xiaoming); } Funcb(CString m_xiaoming) { AfxMessagebox(m_xiaoming); }

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com