• <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有一個嚴(yán)重違背c++標(biāo)準(zhǔn)的地方:
            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ù)分布),并且固定(偏移量永遠不變)。為了在對象布局上給予編譯器充分的自由,標(biāo)準(zhǔn)規(guī)定offsetof只能用于pod。mfc僅考慮在   vc上使用,所以為了方便而僅僅面向vc編譯器編碼。這帶來了移植性的問題。不過,編譯器間的移植性還是小事?,F(xiàn)在我們就可以看到mfc的這種做法是搬起 石頭砸自己的腳。
            sutter和lippman都不止一次地提到將來vc要能夠不區(qū)分托管和本地的內(nèi)存管理。也就是說托管的類型可以在native堆上分配,而   native的類型可以在托管堆上分配。問題來了,由于托管堆上,子對象和宿主對象的存放不是連續(xù)的,子對象可能同宿主對象隔著十萬八千里,和成千上萬的 對象。而且子對象可能會在宿主對象的前面。offset也是不確定的。在這種情況下,使用上面的這種代碼無異于自殺。所以,為了實現(xiàn)托管和本地內(nèi)存管理的 統(tǒng)一,必須放棄offsetof這類畸形代碼。由此導(dǎo)致了mfc的大幅更新。
            另一方面,vc越來越符合標(biāo)準(zhǔn),而mfc中一些遺留的其他不符合標(biāo)準(zhǔn)的地方,使得編譯器不得不同時應(yīng)付兩種情況:標(biāo)準(zhǔn)的和非標(biāo)的。對編譯器著實是個負(fù)擔(dān),消除這些非標(biāo)的東西,反而能夠使得編譯器更加簡單高效。
            以上這些都是猜測,實際如何,還需具體看2008的mfc庫代碼。不管怎么樣,如果你想要使自己的代碼依賴于非標(biāo)準(zhǔn)的特性的話,請三思而后行。
            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>
            還好,標(biāo)準(zhǔn)以外的東西一直都不用  回復(fù)  更多評論
              

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

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

            # re: mfc大幅更新原因的推測 2007-11-15 16:35 萬連文
            不贊成,主要是用戶界面風(fēng)格經(jīng)過十多年變化,現(xiàn)有的mfc庫除了OLE以及一些基礎(chǔ)庫方面(字符串、集合、進程線程模塊管理等)尚且實用可用外,幾乎全部淘汰掉。這種意義上MFC已經(jīng)完全退化為一套程序開發(fā)框架而失去了界面庫的真正意義。用MFC的開發(fā)者都知道假如不使用其他界面庫,只有東拼西湊一些網(wǎng)上下載的代碼,界面風(fē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++還難……
            非標(biāo)準(zhǔn)的太多,太復(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 
            久久SE精品一区二区| 日韩亚洲国产综合久久久| 潮喷大喷水系列无码久久精品| 亚洲愉拍99热成人精品热久久| 欧洲人妻丰满av无码久久不卡 | 亚洲精品乱码久久久久久蜜桃不卡| 亚洲精品无码久久千人斩| 中文字幕成人精品久久不卡| 女同久久| 日本精品久久久中文字幕| 色天使久久综合网天天| 好属妞这里只有精品久久| 少妇熟女久久综合网色欲| 日韩精品国产自在久久现线拍 | 亚洲国产成人精品无码久久久久久综合| 久久精品视频一| 国产精久久一区二区三区| 久久婷婷五月综合97色| 久久成人小视频| 日本久久中文字幕| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 国色天香久久久久久久小说| 99久久夜色精品国产网站| 久久久亚洲欧洲日产国码aⅴ| 性做久久久久久久久| 久久精品国产欧美日韩| 99国产欧美久久久精品蜜芽| 伊人久久大香线蕉AV色婷婷色| 国产精品九九久久免费视频| 久久成人精品视频| 久久99国产精品99久久| 久久精品国产亚洲av影院| 亚洲av日韩精品久久久久久a| 欧美日韩久久中文字幕| 亚洲国产视频久久| 久久婷婷国产剧情内射白浆| 亚洲乱码日产精品a级毛片久久| 久久不见久久见免费影院www日本| 国产精品久久国产精麻豆99网站 | 国产成年无码久久久免费| 久久久久99这里有精品10|