【導(dǎo)讀】前幾天開始閱讀VCL源代碼,可是幾個基類的繼承代碼把我看得頭大。最后只好臨時啃了一下匯編,把Delphi對象操作的幾個關(guān)鍵的方法勘察。這是我花費一個晚上的測試結(jié)果,更多的細節(jié)只能以后在學(xué)習(xí)中再去了解。其實更重要的是,大家可以幫忙檢查我的分析有沒有錯誤。和VCL得來的,匯編更是臨時抱佛腳,所以錯誤難免。我清楚自己的水平,所以寫下結(jié)論后非常擔(dān)心。盡管如此,我的目的是為了學(xué)習(xí),希望你發(fā)現(xiàn)錯誤。編譯器對每個class都一視同仁。(*)dl和eax是constructorCreate實現(xiàn)的關(guān)鍵寄存器。結(jié)構(gòu)化異常處理。(*)objectreference方式的constructor調(diào)用,編譯器嘗試實現(xiàn)為inherited調(diào)。Callingconventions(register缺省調(diào)用約定,constructor和destructor函數(shù)必須?!禗elphi的原子世界》非常值得一讀。addesp,$0c;恢復(fù)堆棧,注意只恢復(fù)了12字節(jié)的堆棧,,確實是個空函數(shù)。在Win32操作系統(tǒng)上的實現(xiàn)之一。還有其他的異常處理實現(xiàn)機制,產(chǎn)生的代碼也不相同。