Monday, October 26, 2009

先關魔獸再關GGC

最近用多開,注意到一個現象

直接關Garena會順便把一個War3關掉 (不知道哪版開始改的)

似乎很方便?

實際上,GGC直接暴力關掉War3 (不使用正常方式結束程式)

這樣做的結果就是,程式結束應該做的釋放資源等動作不會被執行

(驗證方式請用message sniffer,看war3不會收到WM_DESTROY就結束

印象中clean up的動作是在WM_DESTROY中做的)

會不會有memory leak,這要看war3是怎麼寫的

其實改成送WM_DESTROY來結束war3就解決了,怎麼會犯這種錯誤?

我有聽過更誇張的內幕,這邊就不方便透露了 (認識管理員的應該都有機會聽到)



像我就很偷懶,MSDN說程式結束會自動釋放的,我就沒手動寫

如果你沒正常結束koala's WC3 helper,我可以告訴你

基本上會有memory leak,某些系統資源會沒機會釋放

No comments: