pes6和we8不同,pes6獲取鍵盤輸入是從系統按鍵訊息中擷取。不是象we8那樣讀輸入緩
沖區,所以要想實現中文輸入,只能另闢蹊徑了。下面是程式中訊息處理函式的一些分析:
訊息處理函式是009bc453處的call 00660a90:
00660a90開始至00660ad7是判斷視窗是否處於啟用狀態,如果不是則忽略按鍵訊息。
從00660ad7處開始,呼叫user32.dispatchmessagea函式向啟用的遊戲視窗傳送按鍵訊息。
660ba8的call 660bf0 是判斷按鍵的:
如果符合條件的按鍵,就會呼叫9befcb的call 009c0e90 顯示字元。
如果是輸入f1等快捷鍵,將在009c104d處的call 9be800 進行處理:
9be812處是校驗第一有效標誌,當[3a70c20]的值為00時,才能顯示字元;
顯示的內容在9be833出入棧,呼叫9be834的call 9be130來顯示,其中f1的字串的記憶體位址在[0x03a8b659]處。
在9be130開始,就是顯示子程式,9be8e1ef的call 9bafc0是校驗第二有效標誌,其中[3a709e4]的值為00時,就可以顯示字元了。
閱讀程式(6)
all right reserved.檔名稱 test.cpp 作 者 韓雙志 完成日期 2016年6月20日 版本號 v1.0 問題描述 輸入描述 輸出描述 include include include include include using namespace std int main c...
6 除錯程式
回顧上篇 變數資料型別,運算子,流程控制語句都掌握了的話,誰便寫個小程式都是ok的,但是如果寫出的程式和我們預期的不同,我們應該怎麼找錯呢?當然如果是使用工具,文字編輯器就算了吧 不方便 明顯的錯誤編譯器會提示,我們只需要根據提示修改即可 隱藏於程式中的漏洞 邏輯錯誤 這與編譯器無關,原因機器只知道...
詞法分析程式
上課沒聽啥,一邊看書,一邊做的。基本上,老師的要求是實現了,能把乙個句子 也可以是一整個程式,但還不完善,由於時間急,很多情況來不及考慮了 中的單詞項分析出它是保留字,還是識別符號,運算子等等。開始是在控制台下做得,也比較純正 lex.h ifndef lex h define lex h incl...