2006-07-06

早睡早起要上課 好個喜餅兒(Symbian)

早睡早起要上課 好個喜餅兒(Symbian)This entry was originally published at 抓~ 抓到一隻瞌睡蟲

最近因應連續數天的課程, 大家都特別早散會, 現在十點半, 117已經熄燈了, 真的很意外. 可是我ㄧ方面還沒有適應新的寢室, 一方面又因為在實驗室睡太多天, 不習慣寢室那種有其他人的感覺. 所以還是會到兩點左右才睡得著.

赫然發現今天上課的內容應該都是在講那本 Developing Series 60 Applications - A Guide for Symbian OS C++ Developers…

TRAP跟Leave是因為symbian開發的初期, compiler還沒有支援c++的try catch(書是這樣寫的啦…他還說是GNU的toolchain耶…看History看不出來), 所以用trap跟leave這樣的東西, 寫起來很像是自己寫code然後去檢查. 因為TRAP把一堆statement包起來, 如果在這個section中有任何一個statement發生leave, 那就會設定error number, 然後在TRAP最後面寫個if blah… blah… 判斷error number, 看起來有點像try, catch. 又有點像是在call system call, 最後檢查error number這樣.

然後我在今天課程結束的那一瞬間, 把Cleanup Stack整個搞錯, 其實他的用意就是在幫user把allocate過的resource丟到一個stack(管它是不是stack, 可以用的data structure我覺得都可以吧. XD), 有東西噴leave的時候, 他就會把cleanup stack裡面的東西吐出來, 然後destroy掉. (應該是library?) 如果是正常使用的話, 你當然要把allocate的東西吐出來, 然後幹掉它, 所以他有一個PopAndDestroy的東西, 丟一個pointer給他, 他就幫你從那個stack吐出那個東西來, 然後delete掉.

所以說, 上這門課, 等於幫你省時間看那本書, 其實也還不賴啦. XD (想一想, 如果某人每天都不會出現, 我應該是會蠻樂意的專心上課的. )

沒有留言: