pes6程式分析

2021-04-28 11:04:50 字數 594 閱讀 4655

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...