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

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

            DLL與EXE之間的內存 new 與 delete 上的問題

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

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

            久久99这里只有精品国产| 一本一道久久a久久精品综合| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久天天躁夜夜躁狠狠躁2022| 狼狼综合久久久久综合网| 婷婷久久综合九色综合98| 亚洲va久久久噜噜噜久久狠狠| 国产精品免费久久久久久久久 | 久久精品国产男包| 久久亚洲春色中文字幕久久久| 久久99精品国产一区二区三区| 青青热久久国产久精品 | 国产精品VIDEOSSEX久久发布 | 精品国产婷婷久久久| 久久久无码精品亚洲日韩蜜臀浪潮| 狠狠精品久久久无码中文字幕| 久久久久久久久66精品片| 久久人人爽人人爽AV片| 曰曰摸天天摸人人看久久久| 女同久久| 亚洲狠狠久久综合一区77777| 久久精品久久久久观看99水蜜桃| 岛国搬运www久久| 婷婷五月深深久久精品| 少妇被又大又粗又爽毛片久久黑人| 国产亚洲欧美成人久久片| 久久天天躁狠狠躁夜夜avapp| 日本高清无卡码一区二区久久| 久久AⅤ人妻少妇嫩草影院| 久久九九全国免费| 久久精品无码午夜福利理论片| 久久精品国产AV一区二区三区| 亚洲欧美一区二区三区久久| 韩国三级中文字幕hd久久精品| 久久综合欧美成人| .精品久久久麻豆国产精品| 91精品国产高清久久久久久91| 国产成人久久精品一区二区三区| 久久夜色精品国产亚洲| 久久亚洲综合色一区二区三区| 久久免费视频观看|