• <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>

            longshanks

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              14 Posts :: 0 Stories :: 214 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            vc2008中,mfc將大幅度地更新。我猜測更新mfc的原因,很可能mfc中的一些代碼阻礙了vc的進一步發(fā)展,不得不加以更新。
            我以前曾經(jīng)提起過,mfc有一個嚴重違背c++標準的地方:
            class   H;
            class   S
            {
            public:
                    x()   {
                            H*   pThis=this-offsetof(m_s,   H);
                            ...
                    }
            };
            class   H
            {
                    S   m_s;
            };
            H里包含S的對象,在S里,為了獲得宿主類H的指針,用自身的this指針減去m_s在H中的偏移量。這就要求一個類中的子對象必須同宿主對象放在一起 (連續(xù)分布),并且固定(偏移量永遠不變)。為了在對象布局上給予編譯器充分的自由,標準規(guī)定offsetof只能用于pod。mfc僅考慮在   vc上使用,所以為了方便而僅僅面向vc編譯器編碼。這帶來了移植性的問題。不過,編譯器間的移植性還是小事。現(xiàn)在我們就可以看到mfc的這種做法是搬起 石頭砸自己的腳。
            sutter和lippman都不止一次地提到將來vc要能夠不區(qū)分托管和本地的內(nèi)存管理。也就是說托管的類型可以在native堆上分配,而   native的類型可以在托管堆上分配。問題來了,由于托管堆上,子對象和宿主對象的存放不是連續(xù)的,子對象可能同宿主對象隔著十萬八千里,和成千上萬的 對象。而且子對象可能會在宿主對象的前面。offset也是不確定的。在這種情況下,使用上面的這種代碼無異于自殺。所以,為了實現(xiàn)托管和本地內(nèi)存管理的 統(tǒng)一,必須放棄offsetof這類畸形代碼。由此導(dǎo)致了mfc的大幅更新。
            另一方面,vc越來越符合標準,而mfc中一些遺留的其他不符合標準的地方,使得編譯器不得不同時應(yīng)付兩種情況:標準的和非標的。對編譯器著實是個負擔,消除這些非標的東西,反而能夠使得編譯器更加簡單高效。
            以上這些都是猜測,實際如何,還需具體看2008的mfc庫代碼。不管怎么樣,如果你想要使自己的代碼依賴于非標準的特性的話,請三思而后行。
            posted on 2007-11-15 15:14 longshanks 閱讀(2621) 評論(118)  編輯 收藏 引用
            評論共2頁: 1 2 

            Feedback

            # re: mfc大幅更新原因的推測 2007-11-15 16:07 <a href=http://minidx.com>minidxer</a>
            還好,標準以外的東西一直都不用  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測[未登錄] 2007-11-15 16:12 heroboy
            這種東西有什么好改的
            mfc/atl里不跨平臺的東西多了去了,比如:__if_exises

            主要是不做c++/cli,所以有空改進mfc了  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-11-15 16:35 萬連文
            不贊成,主要是用戶界面風格經(jīng)過十多年變化,現(xiàn)有的mfc庫除了OLE以及一些基礎(chǔ)庫方面(字符串、集合、進程線程模塊管理等)尚且實用可用外,幾乎全部淘汰掉。這種意義上MFC已經(jīng)完全退化為一套程序開發(fā)框架而失去了界面庫的真正意義。用MFC的開發(fā)者都知道假如不使用其他界面庫,只有東拼西湊一些網(wǎng)上下載的代碼,界面風格及其不一致,很不專業(yè)。就目前形式看,BCG以及XTreme toolkit等依賴MFC的日子不久遠,還不如整合到MFC中找到一條尚且說得過去的出路,尤其是BCG有了強大的XTreme toolkit沖擊(好像BCG沒有正規(guī)公司都是靠控件網(wǎng)站銷售),我想是不是BCGControlbar會直接被MFC采納.  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-11-15 17:47 yaotong
            http://blog.joycode.com/jiangsheng/archive/2007/11/12/111275.aspx  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-11-15 22:02 萬連文
            哦也,我猜對拉。  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-11-16 11:39 akirya
            但實際上offsetof是可以用在非pod類型上面的
            雖然依賴硬件編碼,但這種做法是不會出現(xiàn)錯誤的.  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-11-26 12:33 小名阿鐵
            MFC....感覺比C++還難……
            非標準的太多,太復(fù)雜,雖然某些人說它的內(nèi)部實現(xiàn)有很多值得學(xué)習(xí)的地方.
            但MFC本身不值得學(xué)習(xí)!
            怎么改與我無關(guān),雖然我是做C++.  回復(fù)  更多評論
              

            # re: mfc大幅更新原因的推測 2007-12-19 21:27 ffl
            想問下沒學(xué)過mfc的我到底要不要學(xué)呢?
              回復(fù)  更多評論
              

            # lghisnii 2008-06-12 21:24 lghisnii
            <a href="http://bykrecpn.com">sqzxlboy</a> sixxgfei http://eilpupql.com wuqrvtnj bgusdqau [URL=http://kvgcdtwd.com]wlzynxye[/URL]   回復(fù)  更多評論
              

            # ehoazyyc 2008-06-12 22:36 ehoazyyc
            <a href="http://wejsjvre.com">bwygzakn</a> xakxjqsx http://nqrrgiaq.com nvuliute lnhqevih [URL=http://qbphjzsw.com]ltrvwtix[/URL]   回復(fù)  更多評論
              

            # purchase xanax 2008-06-13 03:37 purchase xanax
            The crux... is that the vast majority of the mass of the universe seems to be missing.  回復(fù)  更多評論
              

            # losec 2008-06-13 03:38 losec
            People everywhere confuse what they read in newspapers with news.  回復(fù)  更多評論
              

            # naprosyn 2008-06-13 03:42 naprosyn
            Nothing is as simple as we hope it will be.  回復(fù)  更多評論
              

            # azithromycin 2008-06-13 07:43 azithromycin
            Depend not on another, but lean instead on thyself...True happiness is born of self-reliance.  回復(fù)  更多評論
              

            # cheap levitra 2008-06-13 07:44 cheap levitra
            Always do right. This will gratify some people and astonish the rest.  回復(fù)  更多評論
              

            # norvasc 2008-06-13 11:56 norvasc
            It is better to wear out than to rust out.  回復(fù)  更多評論
              

            # wellbutrin online 2008-06-13 17:21 wellbutrin online
            Confidence is the sexiest thing a woman can have. It's much sexier than any body part.  回復(fù)  更多評論
              

            # trazodone actigraph iliococcygeal 2008-06-13 20:38 trazodone actigraph iliococcygeal
            Normal is not something to aspire to, it's something to get away from.  回復(fù)  更多評論
              

            評論共2頁: 1 2 
            人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 亚洲欧美日韩精品久久亚洲区 | 久久免费美女视频| 久久亚洲国产午夜精品理论片| 一级做a爰片久久毛片人呢| 久久精品国产精品亜洲毛片| 一本大道久久东京热无码AV| 久久久国产乱子伦精品作者| 久久这里只有精品视频99| 亚洲中文久久精品无码| 亚洲国产二区三区久久| 久久久久av无码免费网| 国产视频久久| 日韩AV无码久久一区二区| 久久久久一本毛久久久| 99久久国产综合精品麻豆| 久久久久久久91精品免费观看| 热99re久久国超精品首页| 欧美一级久久久久久久大片| 人妻无码αv中文字幕久久琪琪布| 中文字幕亚洲综合久久2| 国产成人精品三上悠亚久久| 久久久久久国产精品免费免费| 综合久久国产九一剧情麻豆| 日韩十八禁一区二区久久| 久久精品国产免费| 久久精品国产精品亚洲毛片 | 久久久久一本毛久久久| 国产精品久久久久jk制服| 囯产极品美女高潮无套久久久| 久久久精品国产亚洲成人满18免费网站 | 婷婷国产天堂久久综合五月| 精品久久久久久国产三级| 久久久久久综合一区中文字幕 | 久久免费线看线看| 2021久久国自产拍精品| 久久w5ww成w人免费| 亚洲va久久久噜噜噜久久 | 精品久久久久久久无码| 亚洲人成精品久久久久| 亚洲国产精品无码成人片久久|