变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

東坡下載:內(nèi)容最豐富最安全的下載站!

首頁(yè)IT技術(shù)軟件教程 → visual C++編譯異常分析及解決方法

visual C++編譯異常分析及解決方法

相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2014/10/27 18:10:01字體大小:A-A+

更多

作者:專題點(diǎn)擊:172次評(píng)論:0次標(biāo)簽: visual c語(yǔ)言

要想學(xué)習(xí)好VC必須具備良好的C/C++的基礎(chǔ),必要的英語(yǔ)閱讀能力也是必不可少的,因?yàn)榇罅康募夹g(shù)文檔多以英文形式發(fā)布,否則就會(huì)導(dǎo)致VC++編譯異常,這大大的影響了程序員的效率。

代碼

struct EXCEPTION_REGISTRATION   

{   

EXCEPTION_REGISTRATION* prev;   

DWORD handler;   

int id;   

DWORD ebp;   

};  

VC++編譯異常會(huì)為絕大部分函數(shù)③添加一個(gè)EXCEPTION_REGISTRATION類型的局部變量,它的最后一個(gè)字段(ebp)與棧楨指針指向的位置重疊。函 數(shù)的序言創(chuàng)建這個(gè)結(jié)構(gòu)并把它注冊(cè)給操作系統(tǒng),尾聲則恢復(fù)主調(diào)函數(shù)的EXCEPTION_REGISTRATION。id字段的意義我將在下一節(jié)介紹。

VC++編譯函數(shù)時(shí)會(huì)為它生成兩部分?jǐn)?shù)據(jù) 

a)異常回調(diào)函數(shù) 

b)一個(gè)包含函數(shù)重要信息的數(shù)據(jù)結(jié)構(gòu),這些信息包括catch塊、這些塊的地址和這些塊所關(guān)心的異常的類型等等。我把這個(gè)結(jié)構(gòu)稱為funcinfo,有關(guān)它的詳細(xì)討論也在下一節(jié)。

是考慮了異常處理之后的運(yùn)行時(shí)堆棧。widget的異常回調(diào)函數(shù)位于由FS:[0]指向的異常處理鏈的開(kāi)始位置(這是由widget的序言設(shè)置的)。

異常處理

異常處理程序把widget的funcinfo結(jié)構(gòu)的地址交給函數(shù)__CxxFrameHandler,__CxxFrameHandler會(huì)檢查這個(gè)結(jié) 構(gòu)看函數(shù)中有沒(méi)有catch塊對(duì)當(dāng)前的異常感興趣。

如果沒(méi)有的話,它就返回ExceptionContinueSearch給操作系統(tǒng),于是操作系統(tǒng)會(huì)從 異常處理鏈表中取得下一個(gè)結(jié)點(diǎn),并調(diào)用它的異常處理程序(也就是調(diào)用當(dāng)前函數(shù)的那個(gè)函數(shù)的異常處理程序)。

這一過(guò)程將一直進(jìn)行下去——直到處理程序找到一個(gè)能處理當(dāng)前異常的catch塊為止,這時(shí)它就不再返回操作系統(tǒng)了。但是在調(diào)用catch塊之前(由于有 funcinfo結(jié)構(gòu),所以知道catch塊的入口,參見(jiàn)圖3),必須進(jìn)行堆棧展開(kāi),也就是清理掉當(dāng)前函數(shù)的棧楨下面的所有其他的棧楨。這個(gè)操作稍微有點(diǎn) 復(fù)雜。

因?yàn)椋寒惓L幚沓绦虮仨氄业疆惓0l(fā)生時(shí)生存在這些棧楨上的所有局部對(duì)象,VC++編譯異常并依次調(diào)用它們的析構(gòu)函數(shù)。后面我將對(duì)此進(jìn)行詳細(xì)介紹。 異常處理程序把這項(xiàng)工作委托給了各個(gè)棧楨自己的異常處理程序。從FS:[0]指向的異常處理鏈的第一個(gè)結(jié)點(diǎn)開(kāi)始,它依次調(diào)用每個(gè)結(jié)點(diǎn)的處理程序,告訴它堆 棧正在展開(kāi)。

與之相呼應(yīng),這些處理程序會(huì)調(diào)用每個(gè)局部對(duì)象的析構(gòu)函數(shù),然后返回。此過(guò)程一直進(jìn)行到與異常處理程序自身相對(duì)應(yīng)的那個(gè)結(jié)點(diǎn)為止。 由于catch塊是函數(shù)的一部分,所以它使用的也是函數(shù)的棧楨。因此,在調(diào)用catch塊之前,異常處理程序必須激活它所隸屬的函數(shù)的棧楨。

其次,每個(gè)catch塊都只接受一個(gè)參數(shù),VC++編譯異常其類型是它希望捕獲的異常的類型。異常處理程序必須把異常對(duì)象本身或者是異常對(duì)象的引用拷貝到catch塊的棧 楨上,編譯器在funcinfo中記錄了相關(guān)信息,處理程序根據(jù)這些信息就能知道到哪去拷貝異常對(duì)象了。

  • Microsoft Visual Studio合集
  • Visual C++
  • visualbasic
Microsoft Visual Studio合集
(9)Microsoft Visual Studio合集

Microsoft Visual Studio作為一個(gè)基本完整的開(kāi)發(fā)工具集,Microsoft Visual Studio為用戶提供了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開(kāi)發(fā)環(huán)境(IDE)等等。所寫(xiě)的目標(biāo)代碼適用于微軟支持的所有平臺(tái),適合各種編程人員使用。

...更多>>
  • visual studio 2017 15.3正式版免費(fèi)

    08-15 / 1.49G

    推薦理由:VisualStudio201715.3正式版本下載,visualstudio2017簡(jiǎn)稱VS2017,這是微軟推出的開(kāi)發(fā)工具,包含VisualC#、
  • visual studio enterprise 2017激活

    05-22 / 800KB

    推薦理由:visualstudioenterprise2017激活密鑰破解版是一款微軟的編程工具,相信很多編程人員都在用,給大家提供最新
  • Microsoft Visual Studio 2005簡(jiǎn)體

    12-26 / 2.54G

    推薦理由:Visual對(duì)一個(gè)學(xué)計(jì)算機(jī)的人來(lái)說(shuō)應(yīng)該不會(huì)沒(méi)有聽(tīng)說(shuō)過(guò)吧,呵呵,說(shuō)實(shí)在話我也是學(xué)計(jì)算機(jī)的Microsoft Visual Stu
  • visual studio示例代碼瀏覽器6.5.8

    10-24 / 12.1M

    推薦理由:支持大量的示例代碼的編輯工具,visualstudio示例代碼瀏覽器為用戶提供了豐富的代碼搜索功能,支持集成代碼
  • Visual Studio Code(微軟跨平臺(tái)編輯

    08-14 / 44.2M

    推薦理由:VisualStudioCode是一款免費(fèi)的跨平臺(tái)代碼編輯器,為開(kāi)發(fā)者們提供了對(duì)多種編程語(yǔ)言的內(nèi)置支持,豐富的代碼補(bǔ)
  • Microsoft Visual Studio 20151.0.

    07-22 / 2.6M

    推薦理由:MicrosoftVisualStudio2015企業(yè)版是當(dāng)今網(wǎng)絡(luò)功能強(qiáng)大、性能出眾的應(yīng)用程序。具備高級(jí)功能的企業(yè)級(jí)解決方案(
Visual C++
(26)Visual C++

最全面的VC++合集,這里為有需要的用戶提供了從一些網(wǎng)上資源很少的舊版本到官方最新推出的新版本,所有你有需求的VC++版本,在這里都能夠直接找到,需要那些老版本的用戶可以直接通過(guò)這里進(jìn)行下載。

...更多>>
  • Microsoft Visual C++ 4.2(支持Win

    10-20 / 221.1M

    推薦理由:作為VC1.52和VC6中間的一個(gè)過(guò)度版本,MicrosoftVisualC++4.2支持從16位版本到32為版本的穩(wěn)定過(guò)度,Microsof
  • microsoft visual c 2.0 32位(MFC

    10-20 / 160.8M

    推薦理由:作為VC系列第一個(gè)只發(fā)行32位的版本,microsoftvisualc2.0集成了MFC3.0,但是因?yàn)楦鞣N原因?qū)е卤景姹镜氖褂梅?/em>
  • Microsoft Visual C++(vc6.0下載)6

    06-03 / 453.3M

    推薦理由:VC++.6.0.with.SP6小編親自安裝,并且運(yùn)行無(wú)錯(cuò)誤MicrosoftVisualC++(vc6.0下載)含中文和英文兩個(gè)版本。使用
  • VC++6.0經(jīng)典插件系列7款打包

    10-21 / 39.0M

    推薦理由:說(shuō)到VisualC++的插件,很多人只想到VisualAssist這款,現(xiàn)在為大家提供VC++6.0經(jīng)典插件系列,包含了多種功能
  • boundschecker vc6綠色版(VC++6.0檢

    10-21 / 18.7M

    推薦理由:為了方便各位編程人員能夠更加簡(jiǎn)單的找出自己的錯(cuò)誤代碼,通過(guò)boundscheckervc6綠色版可以隨時(shí)查詢各種錯(cuò)誤
  • sourcestyler c(C++代碼格式化)1.4

    10-21 / 8.3M

    推薦理由:很多編程人員在盡心一些代碼編輯的時(shí)候都是直接借用各種模板來(lái)進(jìn)行修改,sourcestylerc++可以將各種C++代碼
visualbasic
(15)visualbasic

visual Basic是經(jīng)常需要編程的人員都是需要使用到的,這里為你提供各種各樣的軟件的版本,同時(shí)也是為你免費(fèi)的提供最新的vb控件補(bǔ)丁下載,在這里是可以免費(fèi)的為你解決你需要各種Visual Basic版本問(wèn)題,歡迎免費(fèi)下載使用!

...更多>>
  • Microsoft Visual Basic6.0 中文企

    10-20 / 241.6M

    推薦理由:MicrosoftVisualBasic(R)6.0企業(yè)版是創(chuàng)建高性能解決方案的最有效的工具。其包含以下功能:創(chuàng)建超高速應(yīng)用程序
  • vb6.0 win10版(Visual Basic win10

    10-24 / 241.6M

    推薦理由:vb6.0在現(xiàn)在的win10的系統(tǒng)上面很多的人也是需要下載以及使用的,如果你想在線的下載最新的vb6.0win10版,或者
  • Microsoft Visual Basic(vb6.0精簡(jiǎn)

    10-20 / 102.3M

    推薦理由:MicrosoftVisualBasic6.0簡(jiǎn)稱VB6.0,十分適合剛學(xué)編程語(yǔ)言的初學(xué)新手!這個(gè)版本目前來(lái)說(shuō)是使用人數(shù)是最多的
  • Visual Basic 6.0 win8.1兼容版(vb

    10-24 / 241.6M

    推薦理由:VisualBasic6.0在個(gè)個(gè)版本上面都是有很多的人是需要使用到的,當(dāng)然也是少不了現(xiàn)在還是有很多的人是在使用wi
  • Visual Basic 2008簡(jiǎn)體中文版9.0 官

    10-21 / 1.60G

    推薦理由:VisualBasic2008簡(jiǎn)體中文版其實(shí)也是VisualStudio2008,在VisualStudio2008里面包含了VisualBasic2008,現(xiàn)在
  • Microsoft Visual Basic 2015中文版

    10-20 / 2.58G

    推薦理由:MicrosoftVisualBasic2015就是vb8.0的版本,這個(gè)版本在現(xiàn)在還是有部分的人在使用的,同時(shí)這個(gè)版本最大的特色
更多精彩內(nèi)容請(qǐng)點(diǎn)擊

visual studio

專題

擴(kuò)展知識(shí)

相關(guān)評(píng)論

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過(guò)難過(guò)
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無(wú)聊無(wú)聊
熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
主站蜘蛛池模板: 国产一卡2卡3卡四卡精品网站 | 中文字幕天天躁日日躁狠狠 | 波多野结衣免费免费视频一区 | 小明成人免费视频 | 中国一级特黄大片毛片 | 成人免费网址在线 | 甜性涩爱在线观看e8 | 国产午夜亚洲精品不卡 | 国产精品成人观看视频国产 | 天天摸天天做天天爽 | 妞干在线| 免费在线成人网 | 成人黄18免费视频 | 日韩免费毛片全部不收费 | 欧美中文在线观看 | 日操操| 国产在线视频你懂得 | 97夜夜操 | 欧美色成人tv在线播放 | 999精品在线| 天天做天天看夜夜爽毛片 | 午夜毛片在线观看 | 日韩不卡在线 | 欧美亚洲视频在线观看 | 一级女人18毛片免费 | 久久久久国产成人精品 | 欧美97久久人人模人人爽人人喊 | 曰批全过程免费动态图 | 免费看污的视频网站 | 最近2019在线观看中文视频 | 免费人成网址在线观看国内 | 成人看片黄a免费 | 欧美成人二区 | 妞干网免费看 | 国产特黄特色一级特色大片 | 美女大黄网站 | 狠狠色噜噜狠狠狠狠97不卡 | 99ri在线精品视频在线播放 | 男人的天堂色偷偷亚洲京东 | 国产一区二区视频在线 | 成人午夜影院在线观看 |