青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0
這兩天在寫一些導出類庫,在測試的時候遇到十分詭異的問題,使我遭受痛苦折磨。經驗是寫代碼到處都可能是炸彈,如果不是見多識光還真有可能懷疑計算機或者相信有鬼。

下面來引入問題:
我寫了一個類,需要保存Tooltip信息和一些動態數組信息。結構應該類似下面這樣:
class SOMEDLL_API CSomeDll {
public:
    CSomeDll(
void);
    
// TODO: 在此添加您的方法。
    ~CSomeDll();

    TOOLINFO m_ti;
    
int* pInt;
}
;
為了說明問題適當調整了一下,實際情況那個動態數組使用的是stl容器,當然不影響問題說明。


這個想法很自然看起來也不可能有錯誤,于是我就做了測試,結果出現了問題。當時由于代碼很多,我一段一段進行了分析,最終發現調用該導出類出的問題。這樣我直接做了這樣的測試:
CSomeDll* pPtr = new CSomeDll;
    delete pPtr;
結果錯誤,堆內存毀壞。百思不得其解,開始懷疑stl的分配器導致的問題,修改成自己寫的集合類,仍然有問題。有開始一段一段屏蔽代碼,最終發現只要TOOLINFO后面有動態數組就會導致問題,但是還是沒有找到問題的根本。

開始不相信計算機了,開始懷疑有鬼了。無奈,新建一個win32的helloworld,刪除所有代碼和資源,只剩下winmain,重復上面的new和delete,發現居然沒有問題了。真是見鬼了??難道預編譯頭都能引起內存問題嗎??幸好同事zengfanmiao提到stdafx里面的內容讓我突然想起那些定義的宏會不會導致內存分配問題。

查看TOOLINFO的定義:
typedef struct tagTOOLINFOW {
    UINT cbSize;
    UINT uFlags;
    HWND hwnd;
    UINT_PTR uId;
    RECT rect;
    HINSTANCE hinst;
    LPWSTR lpszText;
#
if (_WIN32_IE >= 0x0300)
    LPARAM lParam;
#endif
#
if (_WIN32_WINNT >= 0x0501)
    
void *lpReserved;
#endif
}
 TTTOOLINFOW, NEAR *PTOOLINFOW, *LPTTTOOLINFOW;

哦,天哪,發現眉目了,果然是這個宏定義導致的。在測試工程里面沒有定義_WIN32_WINNT,而在dll里面定義該宏為0x0501。所以該對象大小在dll比在測試時大4個字節。一旦對dll里面數據進行了修改就會導致越界訪問。這樣在delete的時候,就會報錯。

這個問題在之前就遇到過,但是不知道怎么就巧合避開了。這次終于了解了內幕,寫代碼還真的小心。MS產品線太長,os的維護導致大量結構體存在這樣做法,只能搖頭嘆息,牢記牢記!!!
posted on 2007-07-17 22:12 萬連文 閱讀(1985) 評論(4)  編輯 收藏 引用 所屬分類: 亂七八糟

FeedBack:
# re: 導出類使用值得注意的一個問題
2007-07-17 23:13 | sunny
把TOOLINFO m_ti;改成TOOLINFO *m_ti;就可以解決問題了。  回復  更多評論
  
# re: 導出類使用值得注意的一個問題
2007-07-18 08:36 | SmartPtr
這中錯誤一不小心就會出現,而且很難調,   回復  更多評論
  
# re: 導出類使用值得注意的一個問題
2007-07-18 09:25 | 金慶
導出類要保證類定義DLL內外一致。  回復  更多評論
  
# re: 導出類使用值得注意的一個問題
2007-07-18 21:34 | Corner Zhang
這樣做還是會出tts問題的,若CSomeDll是個singleton這種在dll之外new 和 delete才不會出問題,為了避開tts問題可以在dll中加入對CSomeDll創建和銷毀用的導出函數  回復  更多評論
  
簡歷下載
聯系我

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区三区视频在线观看 | 国内自拍亚洲| 玖玖国产精品视频| 欧美电影资源| 欧美日韩国产综合视频在线| 一区二区三区欧美激情| 欧美一级片一区| 精品999网站| 蜜臀91精品一区二区三区| 亚洲欧洲在线观看| 亚洲影院色在线观看免费| 国产欧美一区二区三区视频| 久久精品日韩| 亚洲一区二区三区中文字幕在线| 国产精品视频观看| 久久人人爽人人爽爽久久| 亚洲欧洲日本国产| 亚洲欧美制服另类日韩| 国产区在线观看成人精品| 久久久久久久久久看片| 亚洲另类春色国产| 久久久久在线观看| 日韩视频久久| 国内精品久久久久影院薰衣草| 欧美大香线蕉线伊人久久国产精品| 一二美女精品欧洲| 欧美日韩亚洲一区| 亚洲小说欧美另类社区| 乱码第一页成人| 亚洲自拍都市欧美小说| 亚洲大胆在线| 欧美午夜精品理论片a级按摩| 欧美资源在线观看| 日韩亚洲欧美精品| 久久久久久久91| 一区二区三区成人精品| 一区二区三区在线视频免费观看 | av不卡在线| 国产亚洲欧美中文| 欧美日韩一区二区欧美激情| 亚洲精品黄色| 亚洲在线黄色| 免费欧美高清视频| 久久经典综合| 在线亚洲国产精品网站| 亚洲成人在线视频播放| 国产日韩欧美亚洲一区| 欧美日韩国产va另类| 久久最新视频| 久久国产精品黑丝| 亚洲综合色视频| 亚洲日本理论电影| 亚洲国产精品va在线观看黑人| 久久成人这里只有精品| 亚洲一区二区影院| 亚洲欧洲一区二区三区久久| 韩国一区电影| 国产欧美一区在线| 欧美色欧美亚洲高清在线视频| 麻豆精品一区二区综合av| 欧美一区二区精美| 亚洲愉拍自拍另类高清精品| 99pao成人国产永久免费视频| 欧美国产视频在线| 久久这里只精品最新地址| 欧美诱惑福利视频| 久久成人精品视频| 性欧美大战久久久久久久久| 亚洲一区二区影院| 亚洲在线中文字幕| 亚洲午夜在线| 亚洲一区二区高清| 亚洲少妇最新在线视频| 中文欧美在线视频| 亚洲免费一级电影| 亚洲已满18点击进入久久| 亚洲综合日韩在线| 亚洲性色视频| 亚洲欧美日韩综合aⅴ视频| 亚洲中无吗在线| 羞羞色国产精品| 久久九九全国免费精品观看| 国产精品99久久久久久久vr| 亚洲制服丝袜在线| 性欧美xxxx大乳国产app| 久久国产免费| 美女网站在线免费欧美精品| 亚洲第一网站免费视频| 亚洲欧洲另类国产综合| 亚洲视频你懂的| 香蕉久久夜色精品国产| 噜噜噜躁狠狠躁狠狠精品视频| 欧美国产精品中文字幕| 欧美日韩成人综合| 国产精品亚洲第一区在线暖暖韩国| 国产精品一区二区久久国产| 国产精品入口麻豆原神| 国产欧美亚洲日本| 亚洲国产精品悠悠久久琪琪| 一区二区高清在线| 欧美在线|欧美| 亚洲高清在线| 亚洲午夜精品久久| 亚洲一区在线播放| 亚洲美女中文字幕| 性欧美暴力猛交另类hd| 欧美xx69| 亚洲一区在线播放| 久久久青草婷婷精品综合日韩| 欧美日韩成人免费| 韩日精品视频| 一区二区三区欧美亚洲| 在线亚洲成人| 免费观看一区| 亚洲国产高清在线| 午夜国产不卡在线观看视频| 欧美sm视频| 欧美在线观看www| 久久免费高清| 国产精品国产自产拍高清av| 亚洲国产另类精品专区| 亚洲永久免费视频| 欧美激情精品久久久久久变态| 久久精品人人| 国产精品第十页| 91久久精品日日躁夜夜躁国产| 亚洲欧美日韩一区在线观看| 欧美激情a∨在线视频播放| 亚洲一区日韩| 亚洲欧美日韩中文视频| 欧美激情亚洲综合一区| 欧美在线啊v| 欧美午夜精品久久久久久孕妇| 狠狠色狠狠色综合日日小说| 亚洲欧美视频| 亚洲国产日韩欧美在线动漫| 性欧美video另类hd性玩具| 欧美久久久久久久久久| 国产伊人精品| 欧美在线视频观看| 夜夜嗨av色一区二区不卡| 欧美激情亚洲| 亚洲激情一区| 欧美xx69| 久热精品视频在线观看一区| 久久在线精品| 狠狠色狠狠色综合| 久久久九九九九| 亚洲一区影音先锋| 国产精品免费久久久久久| 亚洲国产精品一区二区尤物区| 久久久久青草大香线综合精品| 中日韩美女免费视频网站在线观看| 欧美二区在线| 亚洲毛片网站| 亚洲人成在线播放网站岛国| 久久综合99re88久久爱| 在线观看国产成人av片| 久久久久久伊人| 久久国产精品久久国产精品| 国产一区二区久久精品| 久久精品综合网| 欧美在线视频二区| 国产一区二区欧美日韩| 久久蜜桃精品| 久久视频精品在线| 亚洲国产成人tv| 亚洲国产日韩一区二区| 欧美电影在线观看完整版| 亚洲精品久久久久久久久久久| 亚洲黄色免费电影| 欧美日本簧片| 亚洲欧美国产日韩中文字幕| 亚洲欧美国产一区二区三区| av成人免费在线| 亚洲视频免费在线| 精品福利免费观看| 亚洲小说欧美另类社区| 中文欧美日韩| 亚洲小说春色综合另类电影| 欧美日韩专区| 香蕉久久久久久久av网站| av不卡免费看| 亚洲在线一区二区| 国产精品一区二区久久久久| 老色鬼精品视频在线观看播放| 欧美一区中文字幕| 亚洲区免费影片| 一区二区成人精品| 国内伊人久久久久久网站视频| 欧美88av| 国产精品爱久久久久久久| 久久精品成人| 欧美国产视频一区二区| 亚洲一区二区三区777| 亚洲综合色激情五月| 国产亚洲精品综合一区91| 久久亚洲国产精品日日av夜夜| 久久国产一区二区| 一区二区三区高清不卡|