lwch
【QQ:510134884】【Email:
lwch748@gmail.com
】
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆-91 評論-137 文章-0 trackbacks-0
5年編程之旅
其實早就想寫本文了,一直想緬懷一下過去的自己。說是說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的娃娃,當年陪伴一起度過了多少游戲時間.
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
5年編程之旅
Ubuntu下Nginx中Trac配置過程
實習一周總結
VC2010 Lambda表達式簡單分析
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
編譯原理交流群: 83905136
QLanguage交流群: 38843264
我的騰訊微博
我的新浪微博
QLanguage的新浪微博
QLanguage項目(GoogleCode)
QLanguage項目(GitHub)
博客已轉移到:
http://blog.q-devel.com
<
2012年6月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
(92)
CMinus(2)
NScript(26)
QLanguage(24)
STL(9)
操作系統(6)
其他(4)
設計模式(15)
數據結構(4)
游戲(2)
隨筆檔案
(91)
2013年10月 (1)
2013年6月 (1)
2013年5月 (2)
2013年4月 (1)
2013年2月 (2)
2013年1月 (1)
2012年8月 (2)
2012年7月 (1)
2012年6月 (2)
2012年5月 (2)
2011年11月 (1)
2011年9月 (1)
2011年8月 (2)
2011年7月 (5)
2011年6月 (5)
2011年5月 (8)
2011年4月 (2)
2011年3月 (1)
2011年2月 (7)
2011年1月 (8)
2010年12月 (3)
2010年11月 (1)
2010年10月 (1)
2010年9月 (7)
2010年8月 (7)
2010年7月 (15)
2010年6月 (2)
相冊
QLanguage
Blogs
某牛人的Blog
Projects
NScript Compiler
QLanguage Compiler
Redis
Redis中文命令手冊
Websites
C++奮斗園
VC知識庫
程序員聯合開發網
最新隨筆
1.?QParserGenerator的文法文件介紹
2.?5年編程之旅
3.?QParserGenerator代碼分析二(A fix&An example)
4.?QParserGenerator代碼分析一(生成LALR1 DFA)
5.?QCore/Library說明文檔
6.?詞法分析器2(ε-NFA到DFA的轉換)
7.?詞法分析器1(正則表達式到ε-NFA的轉換)
8.?山寨STL實現之內存池V2
9.?如何比較兩個變量的類型是否相同
10.?山寨STL實現之list
11.?山寨STL實現之內存池
12.?山寨STL實現之vector
13.?山寨STL實現之traits,construct&destruct
14.?山寨STL實現之allocator
15.?山寨STL實現筆記
搜索
積分與排名
積分 - 162857
排名 - 162
最新評論
1.?re: 5年編程之旅
感謝LWCH的娃娃,當年陪伴一起度過了多少游戲時間.
--萬馬奔騰
2.?re: 5年編程之旅
@zapline
當時確實用的是別人的代碼,幾年前的東西記不清了,不要這么較真。
--lwch
3.?re: 5年編程之旅
評論內容較長,點擊標題查看
--zapline
4.?re: 5年編程之旅[未登錄]
這精神我很敬仰, 我是散修, 目前還是入門, 我已經入了差不多4年門.
為自己汗顏.
--jains
5.?re: 5年編程之旅
還很年輕,加油
--Richard Wei
閱讀排行榜
1.?LR(0),SLR(1),LR(1)分析器源碼(4761)
2.?觀察者模式(4340)
3.?自制虛擬機框架(3844)
4.?實習一周總結(3634)
5.?山寨STL實現之vector(3541)
評論排行榜
1.?使用面向組合子算法寫詞法分析器(9)
2.?自制虛擬機框架(9)
3.?CosmosKernel初探(8)
4.?觀察者模式(8)
5.?代理模式(7)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 lwch
久久久国产精品福利免费
|
久久久久久国产精品美女
|
国产高清国内精品福利99久久
|
久久久久亚洲av成人网人人软件
|
99久久精品久久久久久清纯
|
avtt天堂网久久精品
|
久久精品国产亚洲AV电影
|
久久久久久毛片免费播放
|
欧美黑人又粗又大久久久
|
精品伊人久久久
|
亚洲精品国产美女久久久
|
老男人久久青草av高清
|
亚洲欧美久久久久9999
|
久久人人爽人人爽人人片av麻烦
|
伊人久久大香线蕉AV一区二区
|
一本色道久久88综合日韩精品
|
久久频这里精品99香蕉久
|
久久午夜伦鲁片免费无码
|
久久精品国产亚洲AV无码麻豆
|
www.久久热
|
久久国产成人午夜aⅴ影院
|
一本一道久久a久久精品综合
|
久久久久久精品无码人妻
|
国内精品久久久久久久97牛牛
|
精品久久人妻av中文字幕
|
国产精品VIDEOSSEX久久发布
|
久久婷婷五月综合成人D啪
|
无码伊人66久久大杳蕉网站谷歌
|
久久精品国产精品亚洲精品
|
久久婷婷五月综合97色一本一本
|
国产精品久久久久影院嫩草
|
久久久久九九精品影院
|
99久久99久久精品国产片果冻
|
国产亚洲色婷婷久久99精品
|
久久久久久国产精品免费免费
|
久久亚洲av无码精品浪潮
|
…久久精品99久久香蕉国产
|
亚洲国产精品婷婷久久
|
精品国产综合区久久久久久
|
久久久久久久久波多野高潮
|
久久99精品国产99久久6男男
|