• <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年,其實在很久之前我已經用按鍵游俠(一個用VBS作為引擎的東西)開始寫腳本了,說起編程還需要感謝豬哥,是他將我帶入了編程這一領域(可悲的是現在都找不到QQ列表中的哪位了,豬哥希望您看到這篇文章之后能聯系我)。5年前,我性質匆匆的買來了一本VC6和VS2005(好像是這個版本)入門的書打算開始學習C++(目前這兩本書在某個妹子手里)。然后開始了漫長的C++學習之旅,記得當時我是一邊摸索著學習C++的語法,一邊在寫按鍵娃娃(值得慶幸的是目前這貨居然還能搜的到),下面我們來看一段有意思的代碼。
             
                可以看到當時的我是多么的稚嫩,居然把一個功能函數包裝成了一個類,居然還滿心歡喜的加上了一段注釋(很簡單實用吧)-_-||

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

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

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



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

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

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

                原來它有這么多模塊

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

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

            圖片

            圖片

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

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

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

            要保存好自己的代碼的話,在github建個庫吧  回復  更多評論
              
            # re: 5年編程之旅 2013-06-18 11:04 | lwch
            @zapline
            當時確實用的是別人的代碼,幾年前的東西記不清了,不要這么較真。  回復  更多評論
              
            # re: 5年編程之旅 2014-08-19 13:35 | 萬馬奔騰
            感謝LWCH的娃娃,當年陪伴一起度過了多少游戲時間.  回復  更多評論
              
            婷婷久久综合九色综合98| 国产日产久久高清欧美一区| 久久久久亚洲AV无码去区首| 国产69精品久久久久99| 久久亚洲精品无码播放| 人妻无码精品久久亚瑟影视| 久久精品国产亚洲av日韩| 国产精品欧美久久久久无广告| 亚洲精品美女久久久久99小说| 色综合久久无码五十路人妻| 久久99精品国产麻豆蜜芽| 日本五月天婷久久网站| 国产精品伦理久久久久久| 精品国产乱码久久久久久呢| 26uuu久久五月天| 久久久久久无码Av成人影院| 久久久久香蕉视频| 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲va久久久噜噜噜久久狠狠| 久久久久成人精品无码中文字幕 | 伊人久久综合精品无码AV专区| 国产成人精品久久一区二区三区| 久久亚洲中文字幕精品一区| 久久精品草草草| 亚洲va中文字幕无码久久| 久久综合色之久久综合| 久久久91精品国产一区二区三区| 久久永久免费人妻精品下载| 久久午夜无码鲁丝片秋霞| 少妇久久久久久被弄到高潮| 精品久久久久久无码免费| 夜夜亚洲天天久久| 国产亚洲欧美成人久久片| 久久国产亚洲精品无码| 无码精品久久久天天影视| 亚洲欧美日韩中文久久| 97久久婷婷五月综合色d啪蜜芽| 久久久亚洲欧洲日产国码二区| 久久精品国产福利国产秒| 久久婷婷五月综合色奶水99啪| 亚洲午夜福利精品久久|