天天看點

驅動調試助手的BUG

     問題層出不窮,一切皆有原因。

     今天發現最新的DM程式,在PPC上面不能正常運作,截圖如下。

驅動調試助手的BUG

     每個主鍵下隻打開了一個子鍵。而TRE,就沒有這個問題。起初以為是數字簽名的問題,檢視了相關的幫助文檔後發現,應該不是數字簽名的原因。

     Additionally, the system protects a set of registry keys so that they cannot be modified by normal applications. All applications can read all registry keys and values, but only privileged applications can modify values or subkeys below protected keys. The system protects a base set of keys. This set of keys is extensible by the original equipment manufacturer.

     确定了是代碼的問題後,通過插樁調試的方法,終于找到了問題所在。原來是GetCursorPos()惹得禍,在PPC上似乎是不支援這個API的,用GetMessagePos()替換掉該API後,就成功解決了這個問題。截圖如下。

驅動調試助手的BUG

     我想不光是PPC上會有這個問題,在某些特定的WinCE系統上(沒有包涵GWES_CURSOR OR GWES_MCURSOR元件)也會存在這個問題,隻是自己平時定制系統時都包括了這些元件,是以一直以來沒有發現這個BUG。這裡又涉及到一個問題,如何确定一個程式能否在特定的WinCE系統上正常運作。因為WinCE系統是一個非标的作業系統,它對API的支援在定制系統時就決定了。關于這個問題,有時間應該整理一下,最好是寫個程式來檢測,産生一個Report,友善開發者判斷需要在定制系統時添加哪些元件,也能讓使用者在程式不能運作時有個答案。

繼續閱讀