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

            tqsheng

            go.....
            隨筆 - 366, 文章 - 18, 評論 - 101, 引用 - 0
            數據加載中……

            [導入]MFC,歡樂與痛苦

             MFC提供了許多十分有用的類和對象,在很多時候在Office插件、BHO、常規DLL這樣的工程中加入MFC支持是一個不錯的選擇。但是,MFC中的很多功能,例如資源查找,消息預處理等等都依賴于在進程或者線程創建時被初始化的MFC內部數據;而對于需要添加MFC支持的工程,這些數據并不會被自動地初始化。這時候使用一些MFC的功能,例如使用CString從字符串表加載一個字符串,或者使用CDialog::DoModal()創建一個模態對話框,都會有斷言錯誤,用ATL向導創建的支持MFC的程序也沒有多少改善,在CWinApp的DLL版本中沒有初始化線程數據,所以調用AfxGetThread會返回空指針。解決這個問題的一個辦法是使用AfxBeginThread來啟動一個MFC線程,這樣MFC會初始化線程相關的數據。在下面的示例中,我在線程初始化時建立了一個模態對話框,以避免直接創建模態對話框會觸發的斷言失敗信息。為了模擬模態對話框的效果,在CDialogThread::WaitForDoModal()這個函數中創建了一個消息循環來等待線程結束,同時用MsgWaitForMultipleObjects來避免死鎖。因為MFC中和進程相關的數據并不總是被正確初始化,在調用模態對話框之前也需要手動設置一下。

            使用VC6.0編譯通過。

            上面的方法只對于DLL之類的組件比較有用。對于使用MFC的應用程序來說,上面的方法比較繁瑣。比較簡單的方法還是使用MFC向導來創建應用程序,然后再添加ATL或者.Net之類的額外支持。參考微軟知識庫文章Q181505和Q824480。
            參考


            文章來源:http://blog.csdn.net/jiangsheng/archive/2005/08/20/459594.aspx

            posted on 2006-03-06 09:10 tqsheng 閱讀(300) 評論(0)  編輯 收藏 引用

            偷窥少妇久久久久久久久| 国内精品欧美久久精品| 亚洲愉拍99热成人精品热久久| 亚洲国产婷婷香蕉久久久久久| 久久久久波多野结衣高潮| 久久久久久夜精品精品免费啦| 国产精品天天影视久久综合网| 久久久久亚洲AV无码专区桃色| 久久久久久伊人高潮影院| 青青草原综合久久大伊人精品| 久久久久99精品成人片三人毛片| 精品人妻伦九区久久AAA片69| 久久91精品久久91综合| 99久久国产亚洲综合精品| 久久久久人妻一区精品色| 国产精品久久久久乳精品爆| 亚洲精品无码久久久久sm| 久久久久国产精品嫩草影院| 久久九九精品99国产精品| 亚洲美日韩Av中文字幕无码久久久妻妇 | 97久久精品人人澡人人爽| 久久久久亚洲精品日久生情| 国产成人香蕉久久久久| 成人久久精品一区二区三区| 精品国产日韩久久亚洲| 精品多毛少妇人妻AV免费久久| 国产精品美女久久久m| 亚洲国产欧美国产综合久久| 日韩电影久久久被窝网| 久久久久亚洲av成人无码电影| 久久久久久a亚洲欧洲aⅴ | 97久久超碰国产精品2021| 亚洲狠狠婷婷综合久久蜜芽| 狠狠色丁香久久婷婷综合_中| 久久久久久极精品久久久| 国产精品久久久久久久久| 久久国产精品无码一区二区三区| 亚洲色欲久久久综合网| 一本色道久久88—综合亚洲精品| 波多野结衣久久一区二区| 久久久久久久91精品免费观看|