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

            戰(zhàn)魂小筑

            討論群:309800774 知乎關(guān)注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

            引擎中的每個工程均以靜態(tài)庫方式鏈接到最后的exe. 代碼中包含有靜態(tài)類成員,第一次運行正常,后面不知什么原因, 這些靜態(tài)類成員不會被初始化, 在 crtexec.c 的CRT 初始化全局類成員函數(shù)

            static void __cdecl _initterm (
            #endif  /* CRTDLL */
                    _PVFV * pfbegin,
                    _PVFV * pfend
                    )
            {
                    /*
                     * walk the table of function pointers from the bottom up, until
                     * the end is encountered.  Do not skip the first entry.  The initial
                     * value of pfbegin points to the first valid entry.  Do not try to
                     * execute what pfend points to.  Only entries before pfend are valid.
                     */
                    while ( pfbegin < pfend )
                    {
                        /*
                         * if current table entry is non-NULL, call thru it.
                         */
                        if ( *pfbegin != NULL )
                            (**pfbegin)();
                        ++pfbegin;
                    }
            }

             

             

            這個函數(shù)會初始化所有鏈接到exe中的全局函數(shù)構(gòu)造, 跟蹤這個地方, 發(fā)現(xiàn),只有1個lib中的能被正確調(diào)用,但是出問題的那個lib中所有構(gòu)造都不能被調(diào)用. 嘗試調(diào)整編譯順序無果

            唯一的方法只有修改架構(gòu)為在winmain內(nèi)進行構(gòu)造

            如果有這方面調(diào)試經(jīng)驗的同學可以回帖,謝謝

            posted on 2010-04-23 17:47 戰(zhàn)魂小筑 閱讀(1541) 評論(6)  編輯 收藏 引用 所屬分類: 程序調(diào)試技術(shù)C++/ 編程語言

            評論

            # re: CRT未構(gòu)造全局對象問題 2010-04-23 19:45 Lo
            一般是編譯庫文件的vs版本不對
            比如vc2003用vc6編譯的庫 就會出這樣的問題  回復  更多評論
              

            # re: CRT未構(gòu)造全局對象問題 2010-04-23 20:37 Davy.xu
            都是vs2008工程  回復  更多評論
              

            # re: CRT未構(gòu)造全局對象問題 2010-04-23 20:54 Davy.xu
            都是vs2008工程

            換過機器編譯,一樣的結(jié)果. 具體研究了下, 換了一個CPP就會解決這個問題.但是在原來的CPP無論構(gòu)造多少都無法初始化  回復  更多評論
              

            # re: CRT未構(gòu)造全局對象問題 2010-04-24 02:32 陳梓瀚(vczh)
            一直都堅持在winmain初始化并且盡可能減少全局變量的vczh飄過  回復  更多評論
              

            # re: CRT未構(gòu)造全局對象問題 2010-04-29 19:56 zhuxinbin2000@gmail.com
            靜態(tài)類成員除非在類外面有定義,否則是不會在_initterm里面初始化的,就是說只有被使用了才會初始化。   回復  更多評論
              

            # re: CRT未構(gòu)造全局對象問題 2010-06-22 15:21 小祥
            @zhuxinbin2000@gmail.com

            應(yīng)該是被VC優(yōu)化掉了,說明這些變量沒有用到。
              回復  更多評論
              

            久久人妻无码中文字幕| 97久久精品国产精品青草| 久久久精品无码专区不卡| 国产精品久久婷婷六月丁香| 久久精品国产亚洲av水果派| 久久国产视频99电影| 久久偷看各类wc女厕嘘嘘| 久久久精品国产Sm最大网站| 久久人人爽人人爽人人片AV不 | 狠狠综合久久综合88亚洲| 99久久精品国产免看国产一区| 精品国产乱码久久久久久浪潮| 久久综合给久久狠狠97色| 欧美精品福利视频一区二区三区久久久精品 | 久久综合给合久久狠狠狠97色| 久久夜色精品国产| 天天久久狠狠色综合| 久久99热只有频精品8| 国内精品综合久久久40p| 日韩欧美亚洲综合久久影院Ds| 91精品国产高清久久久久久io| 久久AV无码精品人妻糸列| 人妻丰满?V无码久久不卡| 国内精品免费久久影院| 秋霞久久国产精品电影院| 精品熟女少妇av免费久久| 久久精品国产精品亚洲毛片 | 久久久无码精品亚洲日韩蜜臀浪潮 | 日本精品久久久中文字幕| 久久久亚洲欧洲日产国码二区| 精品久久久无码人妻中文字幕 | 久久66热人妻偷产精品9| 久久精品夜夜夜夜夜久久| 久久精品亚洲一区二区三区浴池| 色婷婷综合久久久久中文一区二区 | 丰满少妇高潮惨叫久久久| 久久精品午夜一区二区福利| 国产婷婷成人久久Av免费高清| 99精品国产在热久久无毒不卡| 久久香蕉国产线看观看99| 久久精品人妻一区二区三区|