• <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++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              14 Posts :: 0 Stories :: 214 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            vc2008中,mfc將大幅度地更新。我猜測更新mfc的原因,很可能mfc中的一些代碼阻礙了vc的進一步發展,不得不加以更新。
            我以前曾經提起過,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中的偏移量。這就要求一個類中的子對象必須同宿主對象放在一起 (連續分布),并且固定(偏移量永遠不變)。為了在對象布局上給予編譯器充分的自由,標準規定offsetof只能用于pod。mfc僅考慮在   vc上使用,所以為了方便而僅僅面向vc編譯器編碼。這帶來了移植性的問題。不過,編譯器間的移植性還是小事。現在我們就可以看到mfc的這種做法是搬起 石頭砸自己的腳。
            sutter和lippman都不止一次地提到將來vc要能夠不區分托管和本地的內存管理。也就是說托管的類型可以在native堆上分配,而   native的類型可以在托管堆上分配。問題來了,由于托管堆上,子對象和宿主對象的存放不是連續的,子對象可能同宿主對象隔著十萬八千里,和成千上萬的 對象。而且子對象可能會在宿主對象的前面。offset也是不確定的。在這種情況下,使用上面的這種代碼無異于自殺。所以,為了實現托管和本地內存管理的 統一,必須放棄offsetof這類畸形代碼。由此導致了mfc的大幅更新。
            另一方面,vc越來越符合標準,而mfc中一些遺留的其他不符合標準的地方,使得編譯器不得不同時應付兩種情況:標準的和非標的。對編譯器著實是個負擔,消除這些非標的東西,反而能夠使得編譯器更加簡單高效。
            以上這些都是猜測,實際如何,還需具體看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>
            還好,標準以外的東西一直都不用  回復  更多評論
              

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

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

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

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

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

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

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

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

            # 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]   回復  更多評論
              

            # 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]   回復  更多評論
              

            # 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.  回復  更多評論
              

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

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

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

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

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

            # 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.  回復  更多評論
              

            # 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.  回復  更多評論
              

            評論共2頁: 1 2 
            久久久久久免费一区二区三区| 中文无码久久精品| 精品久久久久久无码中文野结衣| 国产免费久久久久久无码| 热综合一本伊人久久精品| 亚洲精品无码久久久久久| 日韩久久久久久中文人妻| 久久国产精品免费一区| 国产精品久久久久久久久久影院 | 漂亮人妻被中出中文字幕久久 | 亚洲日本久久久午夜精品| 日产精品99久久久久久| 久久93精品国产91久久综合| 无码超乳爆乳中文字幕久久| 国产成人精品久久亚洲| 亚洲精品乱码久久久久久蜜桃图片| 中文字幕亚洲综合久久| 亚洲精品蜜桃久久久久久| 亚洲人成无码网站久久99热国产 | 久久精品国产亚洲AV忘忧草18| 亚洲国产二区三区久久| 欧洲人妻丰满av无码久久不卡| 久久精品亚洲精品国产欧美| 国产精品福利一区二区久久| 婷婷国产天堂久久综合五月| 久久久久久极精品久久久| 蜜桃麻豆www久久| 精品一区二区久久| 久久国产精品-国产精品| 2021久久国自产拍精品| 久久久精品人妻一区二区三区蜜桃 | 久久本道久久综合伊人| 婷婷综合久久狠狠色99h| 99久久婷婷国产综合亚洲| 国内精品久久人妻互换| 国产精品99久久久久久人| 精品国产一区二区三区久久久狼| 亚洲香蕉网久久综合影视| 亚洲中文字幕无码久久2020| 久久久久久精品成人免费图片| 精品久久久久久久久免费影院|