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

            hdqqq

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              35 隨筆 :: 0 文章 :: 104 評論 :: 0 Trackbacks
            共2頁: 1 2 
            hThread[i] = CreateThread(NULL, 0, helloFunc, (LPVOID)i, 0, NULL);
            上面這句是有問題的,因為CreateThread返回時候,并不保證線程已經(jīng)啟動了,所以進入下一個循環(huán)后i就被修改,導(dǎo)致線程取得了錯誤的參數(shù).
            這段代碼是創(chuàng)建微軟xml com對象的,程序就這里用了com接口, 看來對異常處理的還是不夠.
            測試還是不夠,讓兄弟們見笑了.
            有可能.
            所以還需要一個附加機制來記錄程序的運行棧,可以象這樣
            #ifdef _DEBUG
            struct _run_stack {
            static std::stack< std::string > _debug_stack;
            };
            #endif

            template<typename a>
            std::string make_debug(a pa)
            {
            stringstream ls;
            ls << pa << std::endl;
            return ls.str();
            }

            template<typename a,typename b>
            std::string make_debug(a pa, b pb)
            {
            stringstream ls;
            ls << pa << " " << pb << std::endl;
            return ls.str();
            }
            ...按需要擴充

            struct debug_help {

            template<typename a>
            debug_help(a pa) {
            _run_stack::_debug_stack.push(make_debug(pa));
            }
            template<typename a, typename b>
            debug_help(a pa,b pb) {
            _run_stack::_debug_stack.push(make_debug(pa,pb));
            }
            ...按需要擴充

            ~debug_help() {
            _run_stack::_debug_stack.pop();
            }
            };

            -----
            實際使用
            void excepti_func
            {
            #ifdef _DEBUG
            debug_help(__FILE__,__LINE__);
            #endif
            ....
            }

            或者
            void _fd
            {
            int i,j,k;
            for (i = 0; i< 100; i__) {
            debug_help(__FILE__,__LINE__, i);
            for (j = 0; j < 100; j++) {
            debug_help(__FILE__,__LINE__, j);
            for(k = 0; k < 100; k++) {
            debug_help(__FILE__,__LINE__, k);
            }
            }
            }
            }

            出現(xiàn)異常的時候,只要把_run_stack::_debug_stack顯示出來看看就可以了.也可以通過條件編譯,在最終release中將其去掉.
            這個其實使用了編譯器內(nèi)建的__FILE__,和 __LINE__宏,在編譯器就確定了的,上面的代碼來說,如果在某個函數(shù)中處理了異常并顯示信息,以后不管這個函數(shù)在那里被調(diào)用,顯示的異常信息都是一樣的. 象下面

            void excep_handle(...)
            {
            try {
            ...
            THROW_EX( " there is a exception\n " );
            } catch (more_exception & e) {
            SET_CATCH_POS(e);
            std::cout << e;
            }
            }

            而調(diào)用的函數(shù)是這樣的
            void test()
            {
            int i,j,k;
            for (i = 0; i < 100; i++) {
            excep_handle(...)
            for (j = 0; j < 100; j++) {
            excep_handle(...)
            for(k = 0; k < 100; k++) {
            excep_handle(...)
            }
            }
            }
            }

            上面的代碼,不管在那層循環(huán)的調(diào)用中,異常彈出的都是同一個文件和同一個行數(shù)無法知道具體是在那一層出現(xiàn)的異常.
            re: zlib 壓縮管道 hdqqq 2006-11-22 16:28
            @ar4ever
            你可以在zlib的官方網(wǎng)站下載它的壓縮包,以zlib1.2.3為例,解壓縮后,其目錄下的project子目錄下,有vc 6 的工程文件,有8個項目,分別是匯編和c代碼的dll和lib輸出的工程,你編譯全部后,把你要用的lib 和頭文件 zlib.h 放到vc的include 和lib設(shè)置中就可以了.
            共2頁: 1 2 
            久久久久亚洲AV无码网站| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 亚洲精品无码久久不卡| 色播久久人人爽人人爽人人片aV | 三级三级久久三级久久| 久久精品国产亚洲AV蜜臀色欲| 一本一本久久aa综合精品| 2020久久精品国产免费| 国内精品久久久久久久久| 怡红院日本一道日本久久| 欧美一级久久久久久久大| 无码专区久久综合久中文字幕| 国产精品久久久久影院色| 久久国产热这里只有精品| 亚洲精品无码专区久久久| 国产三级观看久久| 久久精品国产亚洲av影院| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 国产精品美女久久久久AV福利| 性欧美大战久久久久久久| 久久99国产精品尤物| 亚洲&#228;v永久无码精品天堂久久| 久久大香萑太香蕉av| 国产精品一区二区久久精品无码 | 久久成人国产精品一区二区| 亚洲国产精品无码久久一区二区| 亚洲一区中文字幕久久| 亚洲AV无码一区东京热久久| 欧美日韩中文字幕久久久不卡| 久久精品国产免费| 久久青青草原精品国产| 久久精品亚洲AV久久久无码| 久久人人爽人人澡人人高潮AV| 99久久国产综合精品网成人影院| 精品久久久久久无码专区不卡| 久久无码AV中文出轨人妻| 久久精品国产亚洲Aⅴ香蕉| 国产精品久久久久一区二区三区 | 亚洲日本久久久午夜精品| 青青青国产成人久久111网站| 97精品久久天干天天天按摩|