上海福彩快3开奖结果 www.x1m79.cn IT职业教育

华中地区北大青鸟校区IT集训营

027-87807717

上海福彩快3开奖结果 > 热门IT技术教程 > .Net技术教程 > > .NET技术教程之VC.NET程序中的CString类应用解析

.NET技术教程之VC.NET程序中的CString类应用解析

时间:2015-10-19 13:51 来源:北大青鸟武汉宏鹏鲁广校区
导读:.NET技术教程之VC.NET程序中的CString类应用解析来帮助大家了解.NET开发中的一些技巧性东西。

  .NET技术教程之VC.NET程序中的CString类应用解析来帮助大家了解.NET开发中的一些技巧性东西。上海福彩快3开奖结果武汉宏鹏鲁广校区学士后.NET课程将会通过对CString类源代码的一些分析,使得大家对于这个类具有更深入的了解,避免在以后使用过程中出错。

  .NET技术教程之为什么是VC.NET的CString类?

  答案很简单,在M$将MFC从4.X(VC6)升级到7.X(VC.NET)开始,原来的CString被重新设计以便与ATL共用,并且支持了template特性。而由于VC6对于C++标准支持差得令人发指,成为众矢之的,且逐渐式微,将成明日黄花,故这里分析VC.NET的CString类

  1. 亲子疑团之谁是我爹

  在新的MFC体系中,CString并不是一个实际存在的类,实际上存在的是CSimpleStringT和CStringT,而我们常用的CString只是一个typedef-class.

  这种变动,无疑让CString的身世显得扑朔迷离。

  CString童鞋内牛满面,不禁高呼:你们到底谁TM是俺爹?

  CString是谁呢?呃,在经过一番从CString到它祖宗十八代的调查后,我们发现:CString的爹,其实是CSimpleStringT.而CStringT,则是CString的前世

  2.亲子疑团之混乱的关系

  CSimpleString是CString体系变化的一个代表。

  在过去,CString实际上是个独立的类,据说连万物之祖——CObject和它都没有半毛钱关系。CString一个人负责内存管理、字符串操作。etc

  而到了新体系下,AFX小组为了更好地与ATL重用,将CString功能分拆成两块:基本的内存管理和缓存操作以及的字符串处理。CSimpleStringT便是负责前者。

  至于CStringT,便继承自CSimpleStringT,然后封装了的字符串处理。

  那么,我们为什么说CStringT是CString的前世呢?因为下面一行代码

  view sourceprint?1 typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;

  对于采用了模板的类来说,这种typedef并不少见,std::string也是一个typedef-class

  PS1:CStringT起初在ATL中设计,并有了MFC支持版(二者应该区别不大),于是编译器分别提供了cstringt.h和atlstr.h

  PS2:即使是现在,CSimpleStringT也是独立的类,与CObject仍然没有半毛钱关系

  3.神秘的老爸——CSimpleStringT

  CSimpleStringT在atlsimplestr.h中,而且是一个比较大的类。CSimpleStringT大多数函数都有文档说明了,我也没必要做无用功,所以我们来看一些没有文档说明的东西

  CSimpleStringT为一些常用的字符/字符串类型定义了别名,便于使用

  public:

  typedef typename ChTraitsBase< BaseType >::XCHAR XCHAR;

  typedef typename ChTraitsBase< BaseType >::PXSTR PXSTR;

  typedef typename ChTraitsBase< BaseType >::PCXSTR PCXSTR;

  typedef typename ChTraitsBase< BaseType >::YCHAR YCHAR;

  typedef typename ChTraitsBase< BaseType >::PYSTR PYSTR;

  typedef typename ChTraitsBase< BaseType >::PCYSTR PCYSTR;

  ChTraitsBase类的信息如下:

  template< typename BaseType = char >

  class ChTraitsBase

  {

  public:

  typedef char XCHAR;

  typedef LPSTR PXSTR;

  typedef LPCSTR PCXSTR;

  typedef wchar_t YCHAR;

  typedef LPWSTR PYSTR;

  typedef LPCWSTR PCYSTR;

  };

  template<>

  class ChTraitsBase< wchar_t >

  {

  public:

  typedef wchar_t XCHAR;

  typedef LPWSTR PXSTR;

  typedef LPCWSTR PCXSTR;

  typedef char YCHAR;

  typedef LPSTR PYSTR;

  typedef LPCSTR PCYSTR;

  };

  NET技术教程之VC.NET程序中的CString类应用解析将会使学生在,NET开发上掌握更多的技巧,在软件开发中更加熟练,成为更加专业的人才。

告诉我们,你现在想了解什么?

精彩专题——96%的同学看到这里都会点击下面的专题

Copyright ? 2006-2016 武汉北大青鸟鲁广校区(武汉宏鹏教育咨询有限公司) 版权所有鄂ICP备11006561号 CacheTime:2018-08-01 09:16:31 CacheID:1079

鄂公网安备 42011102000412号

  • 武汉破获今年来最大毒品案 跨境贩毒65公斤 2018-08-23
  • 颜强读品:球员文身里皮还能干多久图赫尔阿森纳? 2018-08-23
  • 学习贯彻落实习近平总书记重要讲话精神·奥一网(oeeee.com) 2018-07-26
  • 85后女青年刘阿娟带领果农发展绿色无公害果品 2018-07-26
  • 梨子的滋味说不清楚就要亲口偿偿,什么不提倡在一些省搞社会主义,在一些省搞自由市场经济呢,却把这一理念转移方向呢? 2018-07-25
  • 探寻深圳的创新基因(壮阔东方潮 奋进新时代·庆祝改革开放40年) 2018-07-25
  • 澳大利亚:连拍十掌 店主赤手打跑持刀歹徒 2018-07-24
  • 好战的北约应该负责打扫战场,包括难民安置、战后重建…… 2018-07-24
  • 和静县首届东归节6月23日开幕 2018-07-23
  • 挪用900万公款买网红主播一笑,直播平台还有多少“脏钱” 2018-07-23
  • 打喷嚏、擤鼻涕,这些小事大部分人都做错了 2018-07-22
  • 天津各界学习十九大精神--天津频道--人民网 2018-07-22
  • 即使中美贸易归零,中国也不会屈服美国的大棒政策 2018-07-21
  • 来自大调研一线的报告 2018-07-20
  • 君弘精益精牌讲师投资课 2018-07-20
  • 683| 406| 824| 467| 526| 781| 943| 603| 478| 675|