歡迎訪問北大青鳥魯廣校區~

  1. 加入收藏
  2. 設為主頁
  3. 學校簡介

三分鐘了解北大青鳥

×
  • 北大青鳥大數據課程
  • 北大青鳥網絡工程師
  • 北大青鳥web設計專業
  • 北大青鳥PHP專業
  • 北大青鳥啟蒙星課程

.NET技術教程之VC.NET程序中的CString類應用解析

責任編輯:027hpedu來源:北大青鳥魯廣校區.Net技術教程發布時間:2012-07-12 10:45
導讀:.NET技術教程之VC.NET程序中的CString類應用解析來幫助大家了解.NET開發中的一些技巧性東西。

轩辕传奇手游灵兔怎么样 www.xqhnf.icu   .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. 親子疑團之誰是我爹

  在新的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開發上掌握更多的技巧,在軟件開發中更加熟練,成為更加專業的人才。

本文標題:.NET技術教程之VC.NET程序中的CString類應用解析,責任編輯:027hpedu,來源:北大青鳥武漢宏鵬魯廣校,于2012年07月12日10時45分發布于北大青鳥魯廣校區。武漢北大青鳥宏鵬魯廣校區,是北大青鳥武漢電腦學校,專業IT計算機培訓,擁有軟件/網絡/安卓/Web前端/Java課程.北大青鳥地址:光谷廣場魯巷數碼港.電話:027-87807717

專業老師指導

趙老師

從事IT教育培訓十年有余,致力于幫助廣大學子找到適合自己的專業。

培訓咨詢客服

劉老師

IT培訓專業客服,用自己的真誠解決了無數學子的困惑。

本文地址:
文章標題:
  • 北大青鳥Java軟件開發
  • 北大青鳥UI設計課程_零基礎可學
  • 北大青鳥動漫設計_武漢設計學校
  • 北大青鳥數字藝術_武漢電腦學校
×
在線咨詢更多問題

如您有任何疑問
在線咨詢隨時為您解答或撥打咨詢熱線:17740513250

×
  • 姓 名*
  • 手 機*
  • QQ號/微信號
  • 所報學科 *
  • 其他備注
  • 溫馨提示:請保持手機暢通,咨詢老師將為您提供專屬的一對一報名服務。