青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

love in C++, live on MFC

to get ready...

C++博客 首頁 新隨筆 聯系 聚合 管理
  47 Posts :: 0 Stories :: 97 Comments :: 0 Trackbacks

關于CString的兩個問題
CString,string,char*的綜合比較(一) 

1 CString的基類
在《比較》一文中,寫到:
“CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)為Visual C++中最常用的字符串類,繼承自CSimpleStringT類,主要應用在MFC和ATL編程中,主要數據類型有char(應用于ANSI),wchar_t(unicode),TCHAR(ANSI與unicode均可);”
我第一感覺就是文章寫錯了,因為我看過CString的源碼的?。?BR>

struct CStringData
{
    
long nRefs;             // reference count

    int nDataLength;        // length of data (including terminator)
    int nAllocLength;       // length of allocation
    
// TCHAR data[nAllocLength]


    TCHAR
* data()           // TCHAR* to managed data
        return (TCHAR*)(this+1); }
}
;

class
 CString
{
public
:
//
 Constructors

    
// constructs empty CString

    CString();
    
// copy constructor

    CString(const CString& stringSrc);
    
// from a single character

    CString(TCHAR ch, int nRepeat = 1);
    
// from an ANSI string (converts to TCHAR)

    CString(LPCSTR lpsz);
    
// from a UNICODE string (converts to TCHAR)

    CString(LPCWSTR lpsz);
    
// subset of characters from an ANSI string (converts to TCHAR)

    CString(LPCSTR lpch, int nLength);
    
// subset of characters from a UNICODE string (converts to TCHAR)

    CString(LPCWSTR lpch, int nLength);
    
// from unsigned characters

    CString(const unsigned char* psz);

// Attributes & Operations

但是看文章的樣子,也不像是粗制濫造的,心里很是疑惑。
后來再打開VC7的源碼看,果然:

typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;

看來微軟在不知不覺中做了這么大的變化。

2
“string是方便的,可以從幾乎所有的字符串構造而來,包括CString和char*; 
 CString次之,可以從基本的一些字符串變量構造而來,包括char*等; ”
的確,如下的代碼是可以編譯的:

CString strTest = "test";
string sTest(strTest);

但是這是表明string比CString方便嗎?
實際上,在string sTest(strTest);中有一個函數被調用,就是:

_AFX_INLINE CString::operator LPCTSTR() const
    { 
return m_pchData; }

然后才是string構造生成,這能說是string比CString方便嗎?應該說是CString比string方便才好。
雖然可以用

CString strTest(sTest.c_str() );

來初始化CString,但是CString沒有參數為string的構造函數,也是一個小小的遺憾,畢竟string是c++標準庫的一部分了。

posted on 2006-03-02 09:29 flyingxu 閱讀(1985) 評論(6)  編輯 收藏 引用 所屬分類: C/C++ 、VC/MFC

Feedback

# re: 關于CString的兩個問題 2006-03-02 14:58 3×7=51
把CString和string,char*拿來比較也許有點不妥當.
CSting有時對應string,char*有時對應wstring,wchar_t*這取決于TCHAR的定義  回復  更多評論
  

# re: 關于CString的兩個問題 2006-03-09 13:38 沐楓網志
c_str和operator const char*的爭論由來已久。std因為安全的原因,選擇了c_str,拋棄了operator const char*。
這一點對于程序員來說,也不在于好不好用的問題。

CString功能多,這是它好用的最大理由;相對來說string功能就很少。

Cstring最早是用于MFC。后來發展ATL后,ATL也就有了一個CString的輕量級模板實現。
所以發展到后面,干脆將MFC和ATL都經常用到的一些類,提出作為公共類,然后用typedef兼容MFC和ATL的舊有代碼。因此,就有了CString的轉變。  回復  更多評論
  

# re: 關于CString的兩個問題 2006-03-11 20:58 nanami
如果在普通的C++項目里面添加CString頭文件,好像編譯的時候會出錯,是不是需要設置關于MFC的參數?如何設置呢?  回復  更多評論
  

# re: 關于CString的兩個問題 2006-03-16 17:09 flyingxu
@nanami
是的,要在project setting里面選一下 use MFC in...  回復  更多評論
  

# re: 關于CString的兩個問題 2006-11-29 18:22 LeVaN
http://filmiki-najlepsze.lolas.pl ^^^ <a href="http://filmiki-najlepsze.lolas.pl">filmiki najlepsze</a> ^^^ [url]http://filmiki-najlepsze.lolas.pl[/url]  回復  更多評論
  

# re: 關于CString的兩個問題 2006-12-06 12:44 littledovemm
樓主很強啊,找了很多地方,郁悶了很久,看到了你的文章。  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品日韩| 老**午夜毛片一区二区三区| 久久九九免费| 欧美在线|欧美| 久久久精品国产99久久精品芒果| 久久久久一区二区三区| 麻豆成人综合网| 亚洲电影免费观看高清完整版在线观看 | 欧美一区在线看| 久久精品成人一区二区三区 | 欧美精品一级| 国产精品久久午夜| 韩国一区二区三区在线观看| 亚洲国产日韩欧美| 一区二区三区四区国产精品| 久久av在线| 亚洲国产91| 亚洲男人天堂2024| 美日韩丰满少妇在线观看| 欧美性感一类影片在线播放 | 欧美国产第一页| 国产精品日本欧美一区二区三区| 狠狠色综合网站久久久久久久| 99精品欧美| 狂野欧美激情性xxxx欧美| 亚洲精品综合久久中文字幕| 香蕉免费一区二区三区在线观看 | 亚洲国产91| 亚洲尤物精选| 欧美成人四级电影| 亚洲一区二区在线| 欧美国产精品日韩| 极品少妇一区二区三区| 西西人体一区二区| 亚洲人在线视频| 久久精品在线观看| 国产精品毛片a∨一区二区三区| 亚洲国产精品美女| 久久免费国产| 亚洲与欧洲av电影| 国产精品草莓在线免费观看| 日韩图片一区| 亚洲精品永久免费| 久久久久久网站| 国产精品久久久久久久久久久久久久| 亚洲承认在线| 久久久久九九九| 亚洲夜间福利| 国产精品成人一区二区艾草| 日韩午夜精品| 亚洲人成人77777线观看| 久久久亚洲国产天美传媒修理工| 国产欧美日韩一区二区三区在线| 亚洲一品av免费观看| 亚洲人成啪啪网站| 欧美国产视频一区二区| 91久久精品一区二区三区| 欧美成人亚洲成人| 欧美国产精品v| 夜夜爽av福利精品导航| 亚洲国产一区二区视频| 欧美激情综合色综合啪啪| 亚洲巨乳在线| 亚洲美女电影在线| 欧美午夜免费| 欧美在线视频免费观看| 久久丁香综合五月国产三级网站| 国产午夜精品一区二区三区欧美 | 中文久久精品| 99视频一区二区| 欧美三级日本三级少妇99| 亚洲女人天堂av| 亚洲专区一区| 韩国av一区二区三区| 免费不卡在线视频| 欧美高清日韩| 亚洲欧美日韩国产另类专区| 小黄鸭精品aⅴ导航网站入口| 国内视频一区| 亚洲黄网站在线观看| 国产精品美女主播在线观看纯欲| 久久精品视频在线免费观看| 麻豆精品精品国产自在97香蕉| 亚洲毛片在线| 亚洲欧美日韩区| 亚洲高清在线| 亚洲一区二区三区在线播放| 国产一区二区三区在线免费观看 | 国产精品美女xx| 久久久噜噜噜久噜久久| 欧美日韩999| 久久精品亚洲一区| 欧美黄色一区| 久久精品视频在线看| 欧美高清不卡| 久久精品主播| 欧美日韩国产成人| 欧美jizz19性欧美| 亚洲激情另类| 亚洲影视九九影院在线观看| 一区二区三区在线观看国产| 日韩视频在线一区二区| 韩国av一区二区| 一区二区电影免费观看| 在线看片日韩| 亚洲欧美日韩精品久久亚洲区| 亚洲三级影院| 久久久国产精彩视频美女艺术照福利| 中文欧美字幕免费| 女女同性精品视频| 久久综合网络一区二区| 国产精品日韩一区| 亚洲精品日本| 亚洲精品人人| 久久精品日产第一区二区| 亚洲综合日韩| 欧美激情一区二区三区成人| 免费观看久久久4p| 国产欧美精品一区二区色综合 | 欧美大片第1页| 久久综合久久综合久久| 国产欧美一区二区精品仙草咪| 99成人精品| 一区二区日韩伦理片| 欧美激情黄色片| 欧美韩日一区二区| 一区二区在线观看av| 久久不见久久见免费视频1| 欧美亚洲视频在线看网址| 国产精品久久久久久亚洲毛片| 亚洲激情视频在线播放| 日韩手机在线导航| 欧美日韩国产页| 日韩网站免费观看| 一区二区三区www| 欧美日韩国产综合一区二区| 亚洲日本中文字幕免费在线不卡| 亚洲福利在线观看| 母乳一区在线观看| 亚洲激情视频在线播放| 在线视频日韩精品| 国产精品白丝黑袜喷水久久久| 中日韩美女免费视频网址在线观看 | 国产精品v欧美精品v日韩| 亚洲视频一区在线观看| 欧美一区二区三区精品电影| 国产亚洲一区在线播放| 久久久精品2019中文字幕神马| 麻豆久久婷婷| 亚洲欧洲日韩在线| 欧美日韩国产精品一区二区亚洲| 亚洲精品美女91| 亚洲一区欧美一区| 国产日韩欧美精品在线| 久久免费精品视频| 亚洲欧洲精品成人久久奇米网| 日韩一本二本av| 国产精品qvod| 久久国产精品电影| 91久久综合| 欧美91精品| 亚洲一区二区三区在线观看视频| 欧美激情中文字幕一区二区| 99国产精品久久| 欧美在线免费| 91久久精品日日躁夜夜躁国产| 欧美日韩国产在线看| 亚洲欧美日韩国产中文在线| 欧美高清视频免费观看| 亚洲女优在线| 曰本成人黄色| 国产精品啊啊啊| 久久蜜桃av一区精品变态类天堂| 亚洲激情综合| 久久精品国产欧美激情| 亚洲乱码精品一二三四区日韩在线| 国产精品久久久久婷婷| 久久综合九色| 亚洲一区亚洲二区| 亚洲成色www久久网站| 亚洲女人天堂av| 亚洲精品老司机| 国产综合香蕉五月婷在线| 欧美日韩视频| 免费观看在线综合| 性色av一区二区三区红粉影视| 亚洲人成网站精品片在线观看| 久久狠狠亚洲综合| 亚洲视频在线观看| 亚洲精品久久久久久一区二区| 国产午夜精品美女视频明星a级| 欧美美女福利视频| 欧美gay视频| 久久蜜臀精品av| 久久国产精品亚洲va麻豆| 在线视频亚洲| 亚洲精品一区二区三区在线观看| 欧美刺激性大交免费视频| 久久久免费精品| 欧美在线视频在线播放完整版免费观看 |