• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-91  評論-137  文章-0  trackbacks-0
                其實早就想寫本文了,一直想緬懷一下過去的自己。說是說5年,其實在很久之前我已經(jīng)用按鍵游俠(一個用VBS作為引擎的東西)開始寫腳本了,說起編程還需要感謝豬哥,是他將我?guī)肓司幊踢@一領(lǐng)域(可悲的是現(xiàn)在都找不到QQ列表中的哪位了,豬哥希望您看到這篇文章之后能聯(lián)系我)。5年前,我性質(zhì)匆匆的買來了一本VC6和VS2005(好像是這個版本)入門的書打算開始學(xué)習(xí)C++(目前這兩本書在某個妹子手里)。然后開始了漫長的C++學(xué)習(xí)之旅,記得當(dāng)時我是一邊摸索著學(xué)習(xí)C++的語法,一邊在寫按鍵娃娃(值得慶幸的是目前這貨居然還能搜的到),下面我們來看一段有意思的代碼。
             
                可以看到當(dāng)時的我是多么的稚嫩,居然把一個功能函數(shù)包裝成了一個類,居然還滿心歡喜的加上了一段注釋(很簡單實用吧)-_-||

                接下來是兩個比較奇怪的函數(shù)
             
                看里面的兩個變量m_hDebugWnd和m_hCodeWnd按照道理來說這兩個變量應(yīng)該是全局變量才對,為什么被套上了m的定義?(我也是進(jìn)了理客才知道m(xù)是member的縮寫-_-||請不要噴我),可能當(dāng)時看到別人代碼里是這么寫的于是我也就照葫蘆畫瓢了。還有很多個文件里就這么幾行代碼兩三個函數(shù)的,這里就不列舉出來了。

                然后是一個switch,先看代碼
             
                以我現(xiàn)在的風(fēng)格來看,這里肯定變成一個enum,否則這里一改調(diào)用方也需要跟著改定義(可能當(dāng)時考慮到是給VB用的,所以就沒那么做了吧:))。
                寫著寫著就寫到了圖像查找的模塊,為了有效的實現(xiàn)一個查找算法我買來了一本
            圖片 
                但是可悲的是,我至今都還停留在入門的階段,我也只是把里面模板匹配的部分看了一遍。直到幾個月前,BOSS提出需求說是要做名片之類東西的矩形校正,我才完完整整的把這本書又看了一遍,雖然最后還是夭折了-_-||
                與此同時,看到網(wǎng)上說數(shù)據(jù)結(jié)構(gòu)很重要,于是我也買了一本
            圖片
                但對于一個完全沒有系統(tǒng)的學(xué)習(xí)過編程的我來說,買的時候都沒有看清它里面講的是什么語言的,買回來才發(fā)現(xiàn)這個是Pascal版本的,當(dāng)時就崩潰了。。。(雖然之前有用過Delphi,但都沒用它寫過過千行的代碼,然后就被我拋棄了)。
                當(dāng)時為了讓模擬鍵盤鼠標(biāo)那些能過NP(NProtect當(dāng)時是個很牛逼的東西),我甚至還自己動手寫了個驅(qū)動,當(dāng)時對我來說絕對是個非常大的挑戰(zhàn)。當(dāng)時看的資料也不知道已經(jīng)被我丟到哪里去了,說實話其實驅(qū)動寫起來也沒什么復(fù)雜的,按照它的API和框架來寫就是了,不過當(dāng)時比較蛋疼的是調(diào)試的時候經(jīng)常藍(lán)屏,最后我甚至搞了臺虛擬機(jī)來專門調(diào)試,奇怪的是當(dāng)時的那臺破機(jī)器跑虛擬機(jī)居然不卡。

                這里有兩個函數(shù)非常熟悉,是從ring3切換到ring0和切回來的,在之后寫OS的代碼里也有類似的代碼。其中有一些代碼現(xiàn)在不去翻資料已經(jīng)看不懂了:)



                這里有一些有關(guān)于在驅(qū)動中讀寫內(nèi)存和隱藏進(jìn)程的代碼,隱藏進(jìn)程其實很簡單,只要把這個進(jìn)程從鏈表中拿掉就可以了,而讀寫內(nèi)存則需要切到Ring0(因為有NP嘛)。
                最后為了支持自定義窗口,我還為他做了一個窗口編輯器

                很炫吧,呵呵:)下面我們來看一下它的幫助文檔,做的還是很不錯的嘛

                其實這個是按鍵娃娃的第一個版本。

                原來它有這么多模塊

                當(dāng)然我還為按鍵娃娃做了一些網(wǎng)站啊之類的東西,沒記錯的話,按鍵娃娃應(yīng)該是在08年的時候做的,當(dāng)時開奧運會,我甚至還為他配上了一堆福娃的圖標(biāo)。之后我記得應(yīng)該是和按鍵游俠的作者商量好了,一起來開發(fā)自己的引擎,但比較糾結(jié)的是自始至終也只有我一個人在做(據(jù)說他好像帶小孩去了),人家畢竟不是專業(yè)的程序員。應(yīng)此就有了QLanguage的第一個版本,當(dāng)時我給他取名叫ES(Easy to Study) 語言。對于一個沒有學(xué)習(xí)過編譯原理的我來說,一切都是手寫的,而且當(dāng)時還把詞法分析和語法分析都并在了一起,代碼真是一團(tuán)糟。我沒有記錯的話,但是應(yīng)該是我讀南湖3年級和大一的時候,說到考大學(xué),那真是簡單加輕松啊,當(dāng)時就以211分進(jìn)了科技學(xué)院(名字很霸氣吧~還有不要鄙視我,三校生高考滿分是300分,我還是我們班最高的!)。
                之后便開始了大學(xué)生活,當(dāng)然大學(xué)生活是相當(dāng)無聊的,可悲的是大學(xué)三年我只去過一次圖書館,而且那次還是去輔導(dǎo)別人的。其他時間都在墮落的打著游戲(當(dāng)然偶爾無聊的時候也會寫寫代碼,前提是寢室里非常安靜的情況下,估計也只有沒人的時候),其實在這段時間里我多數(shù)時間是在周末回到家才去寫QLanguage的,從大一到大二我一共做了兩個版本的QLanguage,第一個完全是手寫的,手寫的Lexer和手寫的Parser。在這個版本做了一半的時候我看到了
            vczh的博客從他的博客里我知道了有《編譯原理》這門課,于是我就買來了下面這本書
            圖片
                通過讀了這本書之后,便有了第二個版本的QLanguage,當(dāng)時我瞬間就覺得代碼寫的更結(jié)構(gòu)化了,不過這類書更偏理論,里面有一些算法但很少會有實現(xiàn)的代碼,于是我就在網(wǎng)上各種找代碼來看(其實這本書是我目前為止翻的次數(shù)最多的)。 話不多說,讓我們來看看當(dāng)時的代碼

                當(dāng)時的編碼風(fēng)格簡直糟透了隨意的有空格沒空格,加括號和不加括號之類的這里就不展開說了。就在我完成之際,我又迎來了人生的一個轉(zhuǎn)折點。大三了要實習(xí)了,當(dāng)時那是瘋狂的投簡歷啊,看到一家有興趣的給他投簡歷,有幸的是理客是第一家聯(lián)系我的,也就是我待到現(xiàn)在的公司(前三個月去過另外一家公司,反正背后的老板是同一個,只是那邊人手不夠我去幫忙的罷了),而這家公司也是離我家最近的。當(dāng)時我?guī)е患埡啔v就這么過去了,進(jìn)了理客之后我才知道什么是編碼規(guī)范,易讀的代碼應(yīng)該是什么樣的,雖然現(xiàn)在QLanguage的代碼里還是有一些沒有按照規(guī)范來寫的,不過我覺得看起來應(yīng)該還不算糟糕。其實在大三那年還有段小插曲,當(dāng)時看上個妹子,糾結(jié)了許久,最后毅然決定不再聯(lián)系,之后我便下定決心要把QLanguage做好,這才有了一個穩(wěn)定的功能豐富的QLanguage的第二個版本。
                記得剛進(jìn)理客的時候還是個毛頭小子,根本不知天高地厚,總覺得別人的代碼寫的沒我的好。但隨著時間的慢慢推移,我終于實習(xí)期滿了轉(zhuǎn)正了。當(dāng)初的高傲也不復(fù)存在了。在理客我做過PHP、Office Plugin、iOS、Android和Researcher,其中最復(fù)雜的莫過于圖像校正,說是拍出來的名片圍成的四邊形要將他校正為一個正常的矩形,里面的難點在于要找到這四條邊。題外話,在理客的日子我覺得很開心,不光因為我認(rèn)識了新的妹子,更有一幫基友可以陪我扯淡,可以扯游戲也可以扯編程還可以扯東扯西的扯到宇宙去-_-||不過我覺得理客更像是一所學(xué)校(我剛進(jìn)去的時候就是做教育軟件的,可能老板的理念就是從這起的)。而現(xiàn)在看著一個一個辭職的辭職,被辭職的被辭職,心里難免會有一種淡淡的憂傷,不過我覺得最對不起的還是某個同事,我說我要過來,結(jié)果老板把他給開掉了。
                啰啰嗦嗦的終于把本文寫完了,其實我看過的書還有很多,這里我簡單的把他羅列出來

            圖片

            圖片

            圖片
                還有沒空看的
            圖片
                雖然這些書并不是最經(jīng)典的,但當(dāng)你把它們都看完的時候,工作也不成問題了。
                最后我發(fā)現(xiàn),要找以前的代碼真不是一件容易的事情,應(yīng)此我要做個文件和目錄的管理工具,具體的實現(xiàn)方案正在起草。可能本文中間會有些遺漏的地方,等以后想起來了再補上。其實這條路是沒有盡頭的,人類為了簡化各種工作而發(fā)明了電腦和編程語言,應(yīng)此本著這個宗旨我會開發(fā)更多簡單實用的工具來簡化工作和生活。

            posted on 2013-06-17 23:22 lwch 閱讀(2216) 評論(7)  編輯 收藏 引用 所屬分類: 其他

            評論:
            # re: 5年編程之旅 2013-06-18 02:24 | zapline
            哪兩個函數(shù)不是從ring3切換到ring0和切回來的
            是關(guān)閉是/開啟寫保護(hù)
              回復(fù)  更多評論
              
            # re: 5年編程之旅 2013-06-18 08:56 | lwch
            @zapline
            一個意思的啦~  回復(fù)  更多評論
              
            # re: 5年編程之旅 2013-06-18 09:28 | Richard Wei
            還很年輕,加油  回復(fù)  更多評論
              
            # re: 5年編程之旅[未登錄] 2013-06-18 10:20 | jains
            這精神我很敬仰, 我是散修, 目前還是入門, 我已經(jīng)入了差不多4年門.
            為自己汗顏.  回復(fù)  更多評論
              
            # re: 5年編程之旅 2013-06-18 10:28 | zapline
            @lwch
            你這篇文章里面很多錯誤
            例如 “而讀寫內(nèi)存則需要切到Ring0(因為有NP嘛)。”
            我只能認(rèn)為你過NP是用的別人的代碼

            要保存好自己的代碼的話,在github建個庫吧  回復(fù)  更多評論
              
            # re: 5年編程之旅 2013-06-18 11:04 | lwch
            @zapline
            當(dāng)時確實用的是別人的代碼,幾年前的東西記不清了,不要這么較真。  回復(fù)  更多評論
              
            # re: 5年編程之旅 2014-08-19 13:35 | 萬馬奔騰
            感謝LWCH的娃娃,當(dāng)年陪伴一起度過了多少游戲時間.  回復(fù)  更多評論
              
            久久天天躁狠狠躁夜夜不卡| 国产亚洲婷婷香蕉久久精品| 国产成人精品久久免费动漫| 久久WWW免费人成一看片| 无码乱码观看精品久久| 成人a毛片久久免费播放| 国产精品久久久久久福利漫画| 日韩精品无码久久久久久| 亚洲伊人久久大香线蕉综合图片| 亚洲中文字幕无码久久精品1 | 国产精品熟女福利久久AV| 国产精品9999久久久久| MM131亚洲国产美女久久| AAA级久久久精品无码片| 精品久久久久久久| 99久久国产免费福利| 久久久99精品一区二区| 欧美精品福利视频一区二区三区久久久精品 | 久久强奷乱码老熟女网站| 亚洲精品乱码久久久久久蜜桃| 亚洲色欲久久久久综合网| 久久人人爽人人人人爽AV| 久久婷婷五月综合国产尤物app | 久久免费小视频| 国产精品无码久久综合网| 久久九九久精品国产| 亚洲伊人久久成综合人影院 | 漂亮人妻被黑人久久精品| 亚洲国产精品无码久久久不卡 | 久久夜色精品国产亚洲| 久久久久亚洲av毛片大| 99蜜桃臀久久久欧美精品网站| 久久精品黄AA片一区二区三区| 久久久国产精品网站| 久久露脸国产精品| 久久久噜噜噜www成人网| 99久久无码一区人妻| 无码八A片人妻少妇久久| 久久不射电影网| 久久婷婷五月综合97色直播| 青草影院天堂男人久久|