福彩内蒙古时时彩开奖结果 内蒙古时时彩单式上传 内蒙古时时彩结果查询 内蒙古时时彩软件 内蒙古时时彩500走势图 内蒙古时时彩五码走势怎么看 内蒙古时时彩直播开奖 内蒙古时时彩计划软件 内蒙古时时彩五星图 内蒙古时时彩预测最准 内蒙古时时彩三星玩法 彩票内蒙古时时彩 内蒙古时时彩怎么兑奖 内蒙古时时彩软件手机版 内蒙古时时彩现场直播开奖记录 内蒙古时时彩彩票控 内蒙古时时彩快三开奖 内蒙古时时彩计划软件 彩票内蒙古时时彩 内蒙古时时彩最快开奖 福彩内蒙古时时彩 内蒙古时时彩走势图彩经 内蒙古时时彩历史开奖号码查询 内蒙古时时彩5个号走势 内蒙古时时彩wifi 内蒙古时时彩单式 内蒙古时时彩开奖现场报码 内蒙古时时彩五星走势图 内蒙古时时彩最新开奖结果查询 内蒙古时时彩奖金 内蒙古时时彩计划软件手机版 360彩票内蒙古时时彩 内蒙古时时彩软件手机版 内蒙古时时彩11选5开奖结果 内蒙古时时彩最新开奖号码 内蒙古时时彩走势图彩 内蒙古时时彩11走势图 内蒙古时时彩玩法说明 内蒙古时时彩现场直播 内蒙古时时彩官网平台 内蒙古时时彩玩法规则 内蒙古时时彩平台网址 内蒙古时时彩中奖规则 内蒙古时时彩走势图彩经 内蒙古时时彩奖金对 内蒙古时时彩形态走 内蒙古时时彩奖金 内蒙古时时彩历史开奖记录查询 内蒙古时时彩稳赚 今日内蒙古时时彩

IT职业教育

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

027-87807717

北大青鸟首页 > 热门IT技术教程 > .Net技术教程 > > .NET技术教程之VC.NET程序中的CString类应用解析

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

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

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

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

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

  1. 亲子疑团之谁是?#19994;?/p>

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

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

  CString童鞋内牛满面,不禁高呼:你们到底谁TM?#21069;?#29241;?

  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支?#32844;?二者应该区别不大),于是编译器分别提供了cstringt.h和atlstr.h

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

  3.神秘的老爸——CSimpleStringT

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

  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开发上掌握更多的技巧,在软件开发中更加熟练,成为更加专业的人才。

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

精?#39318;?#39064;——96%的同学看到这里都会点击下面的专题

  • 关于我们
  • 鲁广校区北大青鸟宏鹏IT学院

    • 北大青鸟(武汉宏鹏)鲁广北校区地址:武汉市洪山区珞喻路724?#29275;?#20108;号线光谷广场站E口出)三楼
      电话:027-87807717
      网址:www.027hpit.com

    • 北大青鸟宏鹏IT学院:武汉市洪山区鲁磨路568号
      电话:027-87808818
      网址:www.accp027.com

    • 北大青鸟(武汉宏鹏)鲁广南校区:武汉市洪山区珞喻路724?#29275;?#20108;号线光谷广场站E口出)五楼
      电话:027-87807736
      网址:www.whhpit.com

Copyright (c) 2006-2020 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.

内蒙古时时彩开奖现场