標籤:c style blog a http ext
Windows GUI代碼與Windows訊息問題調試利器
記得很久前有這麼一種說法: 人類區別於動物的標準就是工具的使用。同樣在軟體開發這個行業裡面,對於工具的使用也是高手和入門級選手的主要區別,
高手往往靠工具的使用在關鍵的時候開啟局面,在適當的時候使用適當的工具就往往可以事半功倍。
首先讓我們來討論如下兩個簡單的問題。
1. 如果你寫的一個軟體出了一個問題,這個問題只有在關閉程式的時候出現,你怎麼調試呢?
2. 如果你寫的一個軟體出了一個問題,這個問題只有在關閉機器的時候出現,你怎麼調試呢?
3. 如果你寫的一個軟體出了一個問題,你懷疑可能是這個程式訊息處理有問題,你怎麼調試呢?
3. 如果你寫的一個軟體出了一個問題,你懷疑可能是這個程式的資源檔屬性可能有問題,你怎麼調試呢?
你不會真的想一次一次的去重啟電腦來重現問題吧?呵呵..
對於這些問題我首先想介紹的是SPY++, 這個伴隨Visual Studio多個版本的工具其實很多人並沒有很好的利用,更有甚者竟然還造輪子,
不是說不可以造輪子,如果你因為不知道有這個東西去造輪子,我就要鄙視你了,呵呵,不要瞧不起Visual Studio內建的工具,他們往往可以幹很多NB的事,只是你可能
還不太會用。
不多說了,下面,開啟spy++ 將尋找視窗的小圓圈拖拽到你感興趣的小圓圈上面去,選擇屬性,你可以看到所有有關這個視窗的屬性,選擇訊息,你就可以捕獲到這個
視窗接收到的所有的訊息,對於訊息相關的問題,訊息的追蹤,資源屬性問題的調試,說SPY++是神器,一點都不為過。
雖然SPY++對於訊息的捕獲稱的上是神器,但是他有一個功能的缺失,他只能捕獲訊息,不能給視窗發訊息,這對於很多問題的類比和分析就很是不方便
於是有了下面一個我要介紹的工具: SendMessage, 是個open source的小工具,你可以從下面的連結下載:
http://sourceforge.net/projects/stefanstools/files/SendMessage/
SendMessage這個小工具的使用方法和SPY++特別像,所以說他們配合在一起使用也就是水到渠成的事,通過這個工具選擇某個視窗,
你可以對這個視窗send message, post message, 直接選擇不同時期的訊息進行發送,包括關機前才會有系統發出的訊息類比。
小節
通過對這兩個小工具的介紹,我相信開篇的幾個問題讀者已經有了答案,但是我還是想說的是,作為軟體工程師,遇到問題千萬不要蠻幹,
對的時候使用對的工具太重要了,否則就算你加再多的班也是徒勞,希望對大家有所協助,兄弟們加油!