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

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            DLL與EXE之間的內(nèi)存 new 與 delete 上的問題

            最近在做的一個項目,我們的一個EXE調(diào)用了DLL,其中EXE會使用DLL new出來的變量指針,而且會在EXE delete這些指針,同樣,DLL也會使用及delete由EXE new出來的變量指針。
            開始在做測試的時候沒有發(fā)現(xiàn)任何問題,當時用的是DEBUG版本。 可是后來發(fā)現(xiàn)Release版本運行程序時總是會崩,于是開始瘋狂地調(diào)試,終于找到了導致崩潰的原因:
            我們的Release版的EXE和DLL都是用/MT 編譯選項編譯的,也就是靜態(tài)鏈接C/C++的運行時庫,而這時,EXE和DLL各自擁有獨自的堆(Heap)空間,所以其中一方在其堆中new出來的內(nèi)存,只能由其自己來delete,否則就會產(chǎn)生問題(也就是我們碰到的崩潰...).
            解決方法有很多種,我采用的方法就是改了改代碼,讓DLL delete 自己 new 出來的東西,EXE也同樣如此。測試后程序沒有出現(xiàn)問題。
            -------------------------------------------------------------------------------------------
            貼上幾個相關(guān)的鏈接,很有幫助:
            (英文)
            memory allocations in dll
            Deleting memory from DLLs (C++)
            (中文)
            DLL和exe里的malloc和free不能混用
            在DLL中用CRT靜態(tài)庫申請內(nèi)存,EXE釋放是不行的
            DLL分配的內(nèi)存如何在EXE里面釋放

            posted on 2011-05-06 12:34 肥仔 閱讀(1813) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發(fā)

            色综合久久久久综合99| 久久电影网| 少妇被又大又粗又爽毛片久久黑人| 亚洲综合精品香蕉久久网| 久久天天躁狠狠躁夜夜av浪潮| 久久国产精品-国产精品| 国产精品久久久久久久久免费| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲AV日韩精品久久久久久久| 久久精品国产亚洲AV不卡| 久久亚洲AV无码精品色午夜| 99精品国产免费久久久久久下载 | 色欲综合久久躁天天躁蜜桃| 伊人久久五月天| 人妻无码精品久久亚瑟影视| 99精品国产免费久久久久久下载| 日本WV一本一道久久香蕉| 婷婷久久香蕉五月综合加勒比| 久久ZYZ资源站无码中文动漫| 久久精品国产精品亚洲精品| 国产亚洲美女精品久久久| 无码8090精品久久一区| 精品国产乱码久久久久久人妻| 精品少妇人妻av无码久久| 99久久精品久久久久久清纯| 婷婷国产天堂久久综合五月| 午夜人妻久久久久久久久| 国产免费久久精品丫丫| 日韩人妻无码一区二区三区久久99| 久久精品亚洲中文字幕无码麻豆 | 久久青青草原精品影院| 久久久久婷婷| 久久人人爽人人爽人人片AV不| 99久久无码一区人妻| 亚洲AV乱码久久精品蜜桃| 国产精品亚洲综合专区片高清久久久 | 思思久久99热只有频精品66| 国产精品久久99| 伊人久久无码中文字幕| 久久久精品视频免费观看| 久久亚洲日韩精品一区二区三区|