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

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博: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 萬連文 閱讀(1984) 評論(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創建和銷毀用的導出函數  回復  更多評論
  
簡歷下載
聯系我

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(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>
            欧美大片网址| 美女诱惑黄网站一区| 久久一区免费| 国产三级精品在线不卡| 久久福利视频导航| 久久国产精品电影| 亚洲三级毛片| 亚洲一区二区视频在线观看| 国产精品一卡二| 久久视频一区二区| 欧美高清视频在线播放| 欧美一区二区精品| 欧美激情亚洲激情| 欧美怡红院视频一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 亚洲线精品一区二区三区八戒| 亚洲图片欧美午夜| 亚洲人屁股眼子交8| 午夜精品视频在线观看| 一区二区三区高清| 久久理论片午夜琪琪电影网| 欧美夜福利tv在线| 欧美日韩xxxxx| 日韩一级成人av| 亚洲你懂的在线视频| 国产模特精品视频久久久久| 欧美大片一区二区三区| 国产亚洲精品资源在线26u| 亚洲女女女同性video| 国产精品久久久久av免费| 亚洲欧洲日产国码二区| 激情久久综合| 免费观看亚洲视频大全| 欧美激情第三页| 亚洲精品欧美极品| 欧美日韩国产成人| 亚洲视频免费在线| 欧美综合第一页| 亚洲国产影院| 欧美日韩三级电影在线| 亚洲欧美日韩国产综合| 久久精品在线视频| 亚洲电影在线免费观看| 久热精品视频在线观看| 欧美暴力喷水在线| 99成人在线| 国产在线精品自拍| 免费观看日韩av| 一区二区精品| 欧美激情亚洲自拍| aa级大片欧美| 狠狠综合久久av一区二区小说| 欧美第一黄色网| 性欧美暴力猛交69hd| 欧美电影免费| 久久精品av麻豆的观看方式| 1024国产精品| 国产精品一区二区在线观看网站| 免费在线观看精品| 欧美综合77777色婷婷| 99国产精品99久久久久久粉嫩| 久久精品人人做人人爽| 麻豆国产va免费精品高清在线| 99在线精品视频| 亚洲国产成人在线视频| 久久精品99国产精品| 欧美国产日韩精品| 亚洲伊人久久综合| 亚洲国产清纯| 国产情人节一区| 国产精品劲爆视频| 久久一区二区三区国产精品| 亚洲一区二区欧美日韩| 亚洲另类一区二区| 欧美国产先锋| 欧美不卡三区| 免费看的黄色欧美网站| 久久在线免费视频| 美女日韩在线中文字幕| 另类综合日韩欧美亚洲| 久久久久在线| 老司机免费视频一区二区三区 | 国内精品一区二区| 欧美极品aⅴ影院| 欧美日韩一区在线播放| 欧美日韩国产三区| 欧美日韩在线一二三| 欧美激情第4页| 亚洲电影免费在线| 欧美美女视频| 欧美jizz19性欧美| 欧美日韩一区在线观看视频| 国产精品高精视频免费| 国内成+人亚洲+欧美+综合在线| 在线观看91精品国产麻豆| 黑人巨大精品欧美一区二区小视频| 一区二区亚洲精品| 亚洲午夜精品网| 国产精品久久久久久久久搜平片 | 欧美日韩国产精品一区二区亚洲| 欧美亚洲一区在线| 亚洲人精品午夜在线观看| 亚洲欧美日韩精品久久亚洲区| 免费成人黄色片| 国产日韩精品视频一区| 亚洲裸体视频| 欧美激情二区三区| 久久久久高清| 一区二区三区国产精华| 国产精品高清网站| 午夜激情久久久| 亚洲东热激情| 亚洲黄色成人| 9人人澡人人爽人人精品| 久久全国免费视频| 99re视频这里只有精品| 欧美色精品天天在线观看视频| 久久精品二区亚洲w码| 久久亚洲精品欧美| 亚洲人成艺术| 在线精品视频一区二区| 国产精品尤物福利片在线观看| 欧美二区视频| 欧美性开放视频| 国产精品久久久久久一区二区三区 | 激情欧美一区二区| 久久五月激情| 欧美精品高清视频| 国产农村妇女毛片精品久久麻豆 | 午夜精品免费在线| 久久gogo国模裸体人体| 欧美 亚欧 日韩视频在线| 午夜精品福利一区二区蜜股av| 欧美午夜视频在线观看| 亚洲欧美日韩成人| 亚洲欧美一区二区精品久久久| 欧美日在线观看| 亚洲人在线视频| 欧美韩日一区| 欧美激情视频一区二区三区免费| 亚洲婷婷综合色高清在线| 亚洲人午夜精品免费| 午夜宅男欧美| 一区在线免费| 亚洲三级色网| 国产午夜精品理论片a级大结局| 久久精品国产亚洲aⅴ| 亚洲免费视频中文字幕| 国产日韩在线不卡| 久久综合一区| 欧美日韩国产影院| 久久激情网站| 欧美日韩综合网| 妖精成人www高清在线观看| 国产精品久久久久91| 欧美xx69| 伊人久久成人| 亚洲欧洲av一区二区三区久久| 亚洲天堂av在线免费| 久久婷婷亚洲| 99一区二区| 美国十次了思思久久精品导航| 性做久久久久久免费观看欧美| 国产精品夫妻自拍| 麻豆国产精品777777在线| 国产精品入口尤物| 一区二区三区视频观看| 在线视频精品一| 国产女人18毛片水18精品| 欧美激情精品久久久六区热门 | 亚洲欧美网站| 老司机凹凸av亚洲导航| 久久一区视频| 香蕉亚洲视频| 久久久激情视频| 欧美午夜精品久久久久久人妖| 亚洲承认在线| 亚洲精品一区二| 欧美日韩一区免费| 一区二区三区精品视频在线观看| 激情亚洲一区二区三区四区| 性色av一区二区三区| 久久久久综合| 在线成人激情黄色| 蜜桃久久精品乱码一区二区| 亚洲精选中文字幕| 欧美日韩国产首页在线观看| 亚洲乱亚洲高清| 久久精品一区蜜桃臀影院 | 欧美高清视频在线播放| 亚洲欧洲精品一区二区三区不卡 | 国产伦一区二区三区色一情| 亚洲在线网站| 亚洲国产成人久久| 亚洲国产精品第一区二区| 亚洲天堂av图片| 亚洲第一黄网| 国产亚洲精品v| 欧美日韩久久不卡| 午夜在线精品偷拍|