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

            曲徑通幽

            programming_with_fun();

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              18 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(6)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

              最近拿到一個第三方廠家的庫,由于Delphi的同事看不懂c++的例子,所以讓我用C++封裝一個簡單的Wrapper給其調用。
              后來發現一個問題,由于原始的函數聲明中的參數使用字符數組 (char szData[MAX_PATH])  而不是用常用的指針(char *),給Delphi同事調用后,發現函數調用完退棧時候程序本潰,原因是訪問違例,非法地址訪問0x72。
              這么一來感覺比較奇怪,0x72 這個地址顯然是個垃圾地址,一般如果是空指針的話因該是 0x00,如果是野指針,一般也不至于會那么小,0x72與程序加載地址都相去甚遠。
              在vc6(公司只準用vc6)里跟了一下反匯編,感覺信息缺少比較多,能看到的地方已經堆棧被破壞了。于是用了OD跟一下。發現Delphi調用我封裝的 函數時,明明2個入參,卻傳入了3個。多傳了個260。260對于vc程序員應該比較熟悉了,就是MAX_PATH的值。于是乎,告知了Delphi程序 員,方才得知,原來Delphi是可以在聲明時指定數組長度的,也就是說,函數的入參,數組和指針是兩種聲明,如此一來,水落石出了。
            posted on 2010-06-20 23:34 Meiosis 閱讀(384) 評論(0)  編輯 收藏 引用 所屬分類: Windows GenericDebug \ Reverse EngineeringWork Experience
            久久97精品久久久久久久不卡| 久久久99精品一区二区| 久久久久国产精品熟女影院| 久久超碰97人人做人人爱| 国产高潮国产高潮久久久91 | 99精品国产在热久久| 久久99久久成人免费播放| 久久狠狠爱亚洲综合影院| 久久精品免费观看| 久久精品亚洲AV久久久无码| 久久av免费天堂小草播放| 精品蜜臀久久久久99网站| 亚洲精品国产综合久久一线| 99国内精品久久久久久久| 中文精品久久久久人妻| 久久美女网站免费| 97久久婷婷五月综合色d啪蜜芽 | 亚洲国产精品久久久久婷婷老年| 国内精品人妻无码久久久影院导航 | 久久久久97国产精华液好用吗| 亚洲乱码中文字幕久久孕妇黑人| 久久久久国产成人精品亚洲午夜| 久久婷婷五月综合色高清| 伊人色综合久久天天网| 久久精品亚洲欧美日韩久久| 伊人热人久久中文字幕| 久久99热国产这有精品| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产69精品久久久久APP下载| 久久一区二区三区99| 精品久久久久久国产牛牛app| 91精品国产91久久| 婷婷综合久久狠狠色99h| 久久青青草原精品影院| 精品精品国产自在久久高清| 久久99精品国产麻豆宅宅| 国产精品18久久久久久vr| 久久精品一区二区| 国产精品九九久久免费视频| 精品久久久久久99人妻| 亚洲国产成人久久精品99|