• <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久久久精品免费观看国产| 爱做久久久久久| 午夜精品久久久久久影视777 | 中文字幕乱码久久午夜| 97精品伊人久久大香线蕉app| 久久久99精品成人片中文字幕 | 精品久久久久久国产91| 亚洲欧美日韩久久精品第一区| 久久久99精品成人片中文字幕 | 一级做a爱片久久毛片| 精品国产VA久久久久久久冰| 国产精品欧美久久久久无广告| 影音先锋女人AV鲁色资源网久久| www亚洲欲色成人久久精品| 色综合久久综合中文综合网| 国产99久久久久久免费看| 亚洲AV无码1区2区久久| 久久久久亚洲精品天堂久久久久久 | 色综合久久久久无码专区| 久久精品国产清自在天天线| 久久久久国产精品熟女影院| 精品熟女少妇a∨免费久久| 四虎影视久久久免费| 国产精品美女久久久网AV| 国产精品久久久久久一区二区三区| 久久久免费观成人影院| 国产精品伊人久久伊人电影| 久久99国产精品久久99果冻传媒| 国产精品乱码久久久久久软件| 亚洲国产成人精品91久久久| 国产高清国内精品福利99久久| 国产成人久久精品一区二区三区 | 看久久久久久a级毛片| 久久A级毛片免费观看| 亚洲综合伊人久久综合| 少妇人妻综合久久中文字幕| 久久综合久久综合亚洲| 久久精品亚洲精品国产色婷| 午夜久久久久久禁播电影| 伊人久久大香线蕉综合Av|