- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵)LPCTSTR只是一个常量的TCHAR指针。CString?是一个完全独立的类,动态的TCHAR数组,封装了+等操作符和字符串操作方法。typedef?OLECHAR?FAR*?BSTR;typedef?const?char?*?LPCTSTR;vc++中各种字符串的表示法????首先char*?是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。???LP的含义是长指针(long?pointer)。LPSTR是一个指向以‘\0’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位.所以这里的LP和P是等价的.2.C表示const3.T是TCHAR,在采用Unicode方式编译时是wchar_t,在普通时编译成char.???为了满足程序代码国际化的需要,业界推出了Unicode标准,它提供了一种简单和一致的表达字符串的方法,所有字符中的字节都是16位的值,其数量也可以满足差不多世界上所有书面语言字符的编码需求,开发程序时使用Unicode(类型为wchar_t)是一种被鼓励的做法。???LPWSTR与LPCWSTR由此产生,它们的含义类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。??为了实现两种编码的通用,提出了TCHAR的定义:如果定义_UNICODE,声明如下:??typedef?wchar_t?TCHAR;如果没有定义_UNICODE,则声明如下:??typedef?char?TCHAR;LPTSTR和LPCTSTR中的含义就是每个字符是这样的TCHAR。如?LPCTSTR:??#ifdef?_UNICODE????typedef?const?wchar_t?*?LPCTSTR;??#else????typedef?const?char?*?LPCTSTR;??#endifCString类中的字符就是被声明为TCHAR类型的,它提供了一个封装好的类供用户方便地使用。VC常用数据类型使用转换详解先定义一些常见类型变量借以说明int?i?=?100;long?l?=?2001;float?f=300.2;double?d=12345.119;char?username[]=女侠程佩君;char?temp[200];char?*buf;CString?str;_variant_t?v1;_bstr_t?v2;一、其它数据类型转换为字符串短整型(int)???itoa(i,temp,10);??//将i转换为字符串放入temp中,最后一个数字表示十进制???itoa(i,temp,2);???//按二进制方式转换?长整型(long)???ltoa(l,temp,10);二、从其它包含字符串的变量中获取指向该字符串的指针CString变量str?=?2008北京奥运;buf?=?(LPSTR)(LPCTSTR)str;?BSTR类型的_variant_t变量v1?=?(_bstr_t)程序员;buf?=?_com_util::ConvertBSTRToString((_bstr_t)v1);三、字符串转换为其它数据类型strcpy(temp,123);?短整型(int)???i?=?atoi(temp);?长整型(long)???l?=?atol(temp);?浮点(double)???d?=?atof(temp);四、其它数据类型转换到CString???使用CString的成员函数Format来转换,如:整数(int)???str.Format(%d,i);?浮点数(float)???str.Format(%f,i);?字符串指针(char?*)等已经被CString构造函数支持的数据类型可以直接赋值???str?=?username;五、BSTR、_bstr_t与CComBSTRCComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。char?*转换到BSTR可以这样:?BSTR?b=_com_util::ConvertStringToBSTR(数据);??//使用前需要加上头文件comutil.h反之可以使用char?*p=_com_util::ConvertBSTRToString(b)
您可能关注的文档
最近下载
- 2025年湖北省监督数据分析应用中心专项公开招聘22名工作人员笔试备考试题及答案解析.docx VIP
- 兽医毒理学完整版本.doc VIP
- 2025湖北省监督数据分析应用中心专项招聘22人考试备考试题及答案解析.docx VIP
- 2025湖北省监督数据分析应用中心专项招聘22人考试练习试题及答案解析.docx VIP
- 2025湖北省监督数据分析应用中心专项招聘22人笔试备考题库及答案解析.docx VIP
- 2025湖北省监督数据分析应用中心专项招聘22人笔试备考试题及答案解析.docx VIP
- 2025湖北省监督数据分析应用中心专项招聘22人笔试模拟试题及答案解析.docx VIP
- GB 55032-2022 建筑与市政工程施工质量控制通用规范.docx VIP
- 2025湖北省监督数据分析应用中心专项招聘22人笔试模拟试题及答案解析.docx VIP
- 基孔肯雅热防控科普讲座PPT课件.pptx
文档评论(0)