lwch
【QQ:510134884】【Email:
lwch748@gmail.com
】
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-91 評論-137 文章-0 trackbacks-0
5年編程之旅
其實早就想寫本文了,一直想緬懷一下過去的自己。說是說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ù)
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
5年編程之旅
Ubuntu下Nginx中Trac配置過程
實習(xí)一周總結(jié)
VC2010 Lambda表達(dá)式簡單分析
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
編譯原理交流群: 83905136
QLanguage交流群: 38843264
我的騰訊微博
我的新浪微博
QLanguage的新浪微博
QLanguage項目(GoogleCode)
QLanguage項目(GitHub)
博客已轉(zhuǎn)移到:
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)
操作系統(tǒng)(6)
其他(4)
設(shè)計模式(15)
數(shù)據(jù)結(jié)構(gòu)(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知識庫
程序員聯(lián)合開發(fā)網(wǎng)
最新隨筆
1.?QParserGenerator的文法文件介紹
2.?5年編程之旅
3.?QParserGenerator代碼分析二(A fix&An example)
4.?QParserGenerator代碼分析一(生成LALR1 DFA)
5.?QCore/Library說明文檔
6.?詞法分析器2(ε-NFA到DFA的轉(zhuǎn)換)
7.?詞法分析器1(正則表達(dá)式到ε-NFA的轉(zhuǎn)換)
8.?山寨STL實現(xiàn)之內(nèi)存池V2
9.?如何比較兩個變量的類型是否相同
10.?山寨STL實現(xiàn)之list
11.?山寨STL實現(xiàn)之內(nèi)存池
12.?山寨STL實現(xiàn)之vector
13.?山寨STL實現(xiàn)之traits,construct&destruct
14.?山寨STL實現(xiàn)之a(chǎn)llocator
15.?山寨STL實現(xiàn)筆記
搜索
積分與排名
積分 - 162857
排名 - 162
最新評論
1.?re: 5年編程之旅
感謝LWCH的娃娃,當(dāng)年陪伴一起度過了多少游戲時間.
--萬馬奔騰
2.?re: 5年編程之旅
@zapline
當(dāng)時確實用的是別人的代碼,幾年前的東西記不清了,不要這么較真。
--lwch
3.?re: 5年編程之旅
評論內(nèi)容較長,點擊標(biāo)題查看
--zapline
4.?re: 5年編程之旅[未登錄]
這精神我很敬仰, 我是散修, 目前還是入門, 我已經(jīng)入了差不多4年門.
為自己汗顏.
--jains
5.?re: 5年編程之旅
還很年輕,加油
--Richard Wei
閱讀排行榜
1.?LR(0),SLR(1),LR(1)分析器源碼(4761)
2.?觀察者模式(4340)
3.?自制虛擬機(jī)框架(3844)
4.?實習(xí)一周總結(jié)(3634)
5.?山寨STL實現(xiàn)之vector(3541)
評論排行榜
1.?使用面向組合子算法寫詞法分析器(9)
2.?自制虛擬機(jī)框架(9)
3.?CosmosKernel初探(8)
4.?觀察者模式(8)
5.?代理模式(7)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 lwch
久久天天躁狠狠躁夜夜不卡
|
国产亚洲婷婷香蕉久久精品
|
国产成人精品久久免费动漫
|
久久WWW免费人成一看片
|
无码乱码观看精品久久
|
成人a毛片久久免费播放
|
国产精品久久久久久福利漫画
|
日韩精品无码久久久久久
|
亚洲伊人久久大香线蕉综合图片
|
亚洲中文字幕无码久久精品1
|
国产精品熟女福利久久AV
|
国产精品9999久久久久
|
MM131亚洲国产美女久久
|
AAA级久久久精品无码片
|
精品久久久久久久
|
99久久国产免费福利
|
久久久99精品一区二区
|
欧美精品福利视频一区二区三区久久久精品
|
久久强奷乱码老熟女网站
|
亚洲精品乱码久久久久久蜜桃
|
亚洲色欲久久久久综合网
|
久久人人爽人人人人爽AV
|
久久婷婷五月综合国产尤物app
|
久久免费小视频
|
国产精品无码久久综合网
|
久久九九久精品国产
|
亚洲伊人久久成综合人影院
|
漂亮人妻被黑人久久精品
|
亚洲国产精品无码久久久不卡
|
久久夜色精品国产亚洲
|
久久久久亚洲av毛片大
|
99蜜桃臀久久久欧美精品网站
|
久久精品黄AA片一区二区三区
|
久久久国产精品网站
|
久久露脸国产精品
|
久久久噜噜噜www成人网
|
99久久无码一区人妻
|
无码八A片人妻少妇久久
|
久久不射电影网
|
久久婷婷五月综合97色直播
|
青草影院天堂男人久久
|