lwch
【QQ:510134884】【Email:
lwch748@gmail.com
】
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
隨筆-91 評(píng)論-137 文章-0 trackbacks-0
5年編程之旅
其實(shí)早就想寫本文了,一直想緬懷一下過(guò)去的自己。說(shuō)是說(shuō)5年,其實(shí)在很久之前我已經(jīng)用按鍵游俠(一個(gè)用VBS作為引擎的東西)開始寫腳本了,說(shuō)起編程還需要感謝豬哥,是他將我?guī)肓司幊踢@一領(lǐng)域(可悲的是現(xiàn)在都找不到QQ列表中的哪位了,豬哥希望您看到這篇文章之后能聯(lián)系我)。5年前,我性質(zhì)匆匆的買來(lái)了一本VC6和VS2005(好像是這個(gè)版本)入門的書打算開始學(xué)習(xí)C++(目前這兩本書在某個(gè)妹子手里)。然后開始了漫長(zhǎng)的C++學(xué)習(xí)之旅,記得當(dāng)時(shí)我是一邊摸索著學(xué)習(xí)C++的語(yǔ)法,一邊在寫按鍵娃娃(值得慶幸的是目前這貨居然還能搜的到),下面我們來(lái)看一段有意思的代碼。
可以看到當(dāng)時(shí)的我是多么的稚嫩,居然把一個(gè)功能函數(shù)包裝成了一個(gè)類,居然還滿心歡喜的加上了一段注釋(很簡(jiǎn)單實(shí)用吧)-_-||
接下來(lái)是兩個(gè)比較奇怪的函數(shù)
看里面的兩個(gè)變量m_hDebugWnd和m_hCodeWnd按照道理來(lái)說(shuō)這兩個(gè)變量應(yīng)該是全局變量才對(duì),為什么被套上了m的定義?(我也是進(jìn)了理客才知道m(xù)是member的縮寫-_-||請(qǐng)不要噴我),可能當(dāng)時(shí)看到別人代碼里是這么寫的于是我也就照葫蘆畫瓢了。還有很多個(gè)文件里就這么幾行代碼兩三個(gè)函數(shù)的,這里就不列舉出來(lái)了。
然后是一個(gè)switch,先看代碼
以我現(xiàn)在的風(fēng)格來(lái)看,這里肯定變成一個(gè)enum,否則這里一改調(diào)用方也需要跟著改定義(可能當(dāng)時(shí)考慮到是給VB用的,所以就沒(méi)那么做了吧:))。
寫著寫著就寫到了圖像查找的模塊,為了有效的實(shí)現(xiàn)一個(gè)查找算法我買來(lái)了一本
但是可悲的是,我至今都還停留在入門的階段,我也只是把里面模板匹配的部分看了一遍。直到幾個(gè)月前,BOSS提出需求說(shuō)是要做名片之類東西的矩形校正,我才完完整整的把這本書又看了一遍,雖然最后還是夭折了-_-||
與此同時(shí),看到網(wǎng)上說(shuō)數(shù)據(jù)結(jié)構(gòu)很重要,于是我也買了一本
但對(duì)于一個(gè)完全沒(méi)有系統(tǒng)的學(xué)習(xí)過(guò)編程的我來(lái)說(shuō),買的時(shí)候都沒(méi)有看清它里面講的是什么語(yǔ)言的,買回來(lái)才發(fā)現(xiàn)這個(gè)是Pascal版本的,當(dāng)時(shí)就崩潰了。。。(雖然之前有用過(guò)Delphi,但都沒(méi)用它寫過(guò)過(guò)千行的代碼,然后就被我拋棄了)。
當(dāng)時(shí)為了讓模擬鍵盤鼠標(biāo)那些能過(guò)NP(NProtect當(dāng)時(shí)是個(gè)很牛逼的東西),我甚至還自己動(dòng)手寫了個(gè)驅(qū)動(dòng),當(dāng)時(shí)對(duì)我來(lái)說(shuō)絕對(duì)是個(gè)非常大的挑戰(zhàn)。當(dāng)時(shí)看的資料也不知道已經(jīng)被我丟到哪里去了,說(shuō)實(shí)話其實(shí)驅(qū)動(dòng)寫起來(lái)也沒(méi)什么復(fù)雜的,按照它的API和框架來(lái)寫就是了,不過(guò)當(dāng)時(shí)比較蛋疼的是調(diào)試的時(shí)候經(jīng)常藍(lán)屏,最后我甚至搞了臺(tái)虛擬機(jī)來(lái)專門調(diào)試,奇怪的是當(dāng)時(shí)的那臺(tái)破機(jī)器跑虛擬機(jī)居然不卡。
這里有兩個(gè)函數(shù)非常熟悉,是從ring3切換到ring0和切回來(lái)的,在之后寫OS的代碼里也有類似的代碼。其中有一些代碼現(xiàn)在不去翻資料已經(jīng)看不懂了:)
這里有一些有關(guān)于在驅(qū)動(dòng)中讀寫內(nèi)存和隱藏進(jìn)程的代碼,隱藏進(jìn)程其實(shí)很簡(jiǎn)單,只要把這個(gè)進(jìn)程從鏈表中拿掉就可以了,而讀寫內(nèi)存則需要切到Ring0(因?yàn)橛蠳P嘛)。
最后為了支持自定義窗口,我還為他做了一個(gè)窗口編輯器
很炫吧,呵呵:)下面我們來(lái)看一下它的幫助文檔,做的還是很不錯(cuò)的嘛
其實(shí)這個(gè)是按鍵娃娃的第一個(gè)版本。
原來(lái)它有這么多模塊
當(dāng)然我還為按鍵娃娃做了一些網(wǎng)站啊之類的東西,沒(méi)記錯(cuò)的話,按鍵娃娃應(yīng)該是在08年的時(shí)候做的,當(dāng)時(shí)開奧運(yùn)會(huì),我甚至還為他配上了一堆福娃的圖標(biāo)。之后我記得應(yīng)該是和按鍵游俠的作者商量好了,一起來(lái)開發(fā)自己的引擎,但比較糾結(jié)的是自始至終也只有我一個(gè)人在做(據(jù)說(shuō)他好像帶小孩去了),人家畢竟不是專業(yè)的程序員。應(yīng)此就有了QLanguage的第一個(gè)版本,當(dāng)時(shí)我給他取名叫ES
(Easy to Study)
語(yǔ)言。對(duì)于一個(gè)沒(méi)有學(xué)習(xí)過(guò)編譯原理的我來(lái)說(shuō),一切都是手寫的,而且當(dāng)時(shí)還把詞法分析和語(yǔ)法分析都并在了一起,代碼真是一團(tuán)糟。我沒(méi)有記錯(cuò)的話,但是應(yīng)該是我讀南湖3年級(jí)和大一的時(shí)候,說(shuō)到考大學(xué),那真是簡(jiǎn)單加輕松啊,當(dāng)時(shí)就以211分進(jìn)了科技學(xué)院(名字很霸氣吧~還有不要鄙視我,三校生高考滿分是300分,我還是我們班最高的!)。
之后便開始了大學(xué)生活,當(dāng)然大學(xué)生活是相當(dāng)無(wú)聊的,可悲的是大學(xué)三年我只去過(guò)一次圖書館,而且那次還是去輔導(dǎo)別人的。其他時(shí)間都在墮落的打著游戲(當(dāng)然偶爾無(wú)聊的時(shí)候也會(huì)寫寫代碼,前提是寢室里非常安靜的情況下,估計(jì)也只有沒(méi)人的時(shí)候),其實(shí)在這段時(shí)間里我多數(shù)時(shí)間是在周末回到家才去寫QLanguage的,從大一到大二我一共做了兩個(gè)版本的QLanguage,第一個(gè)完全是手寫的,手寫的Lexer和手寫的Parser。在這個(gè)版本做了一半的時(shí)候我看到了
vczh的博客
從他的博客里我知道了有《編譯原理》這門課,于是我就買來(lái)了下面這本書
通過(guò)讀了這本書之后,便有了第二個(gè)版本的QLanguage,當(dāng)時(shí)我瞬間就覺(jué)得代碼寫的更結(jié)構(gòu)化了,不過(guò)這類書更偏理論,里面有一些算法但很少會(huì)有實(shí)現(xiàn)的代碼,于是我就在網(wǎng)上各種找代碼來(lái)看(其實(shí)這本書是我目前為止翻的次數(shù)最多的)。 話不多說(shuō),讓我們來(lái)看看當(dāng)時(shí)的代碼
當(dāng)時(shí)的編碼風(fēng)格簡(jiǎn)直糟透了隨意的有空格沒(méi)空格,加括號(hào)和不加括號(hào)之類的這里就不展開說(shuō)了。就在我完成之際,我又迎來(lái)了人生的一個(gè)轉(zhuǎn)折點(diǎn)。大三了要實(shí)習(xí)了,當(dāng)時(shí)那是瘋狂的投簡(jiǎn)歷啊,看到一家有興趣的給他投簡(jiǎn)歷,有幸的是理客是第一家聯(lián)系我的,也就是我待到現(xiàn)在的公司(前三個(gè)月去過(guò)另外一家公司,反正背后的老板是同一個(gè),只是那邊人手不夠我去幫忙的罷了),而這家公司也是離我家最近的。當(dāng)時(shí)我?guī)е患埡?jiǎn)歷就這么過(guò)去了,進(jìn)了理客之后我才知道什么是編碼規(guī)范,易讀的代碼應(yīng)該是什么樣的,雖然現(xiàn)在QLanguage的代碼里還是有一些沒(méi)有按照規(guī)范來(lái)寫的,不過(guò)我覺(jué)得看起來(lái)應(yīng)該還不算糟糕。其實(shí)在大三那年還有段小插曲,當(dāng)時(shí)看上個(gè)妹子,糾結(jié)了許久,最后毅然決定不再聯(lián)系,之后我便下定決心要把QLanguage做好,這才有了一個(gè)穩(wěn)定的功能豐富的QLanguage的第二個(gè)版本。
記得剛進(jìn)理客的時(shí)候還是個(gè)毛頭小子,根本不知天高地厚,總覺(jué)得別人的代碼寫的沒(méi)我的好。但隨著時(shí)間的慢慢推移,我終于實(shí)習(xí)期滿了轉(zhuǎn)正了。當(dāng)初的高傲也不復(fù)存在了。在理客我做過(guò)PHP、Office Plugin、iOS、Android和Researcher,其中最復(fù)雜的莫過(guò)于圖像校正,說(shuō)是拍出來(lái)的名片圍成的四邊形要將他校正為一個(gè)正常的矩形,里面的難點(diǎn)在于要找到這四條邊。題外話,在理客的日子我覺(jué)得很開心,不光因?yàn)槲艺J(rèn)識(shí)了新的妹子,更有一幫基友可以陪我扯淡,可以扯游戲也可以扯編程還可以扯東扯西的扯到宇宙去-_-||不過(guò)我覺(jué)得理客更像是一所學(xué)校(我剛進(jìn)去的時(shí)候就是做教育軟件的,可能老板的理念就是從這起的)。而現(xiàn)在看著一個(gè)一個(gè)辭職的辭職,被辭職的被辭職,心里難免會(huì)有一種淡淡的憂傷,不過(guò)我覺(jué)得最對(duì)不起的還是某個(gè)同事,我說(shuō)我要過(guò)來(lái),結(jié)果老板把他給開掉了。
啰啰嗦嗦的終于把本文寫完了,其實(shí)我看過(guò)的書還有很多,這里我簡(jiǎn)單的把他羅列出來(lái)
還有沒(méi)空看的
雖然這些書并不是最經(jīng)典的,但當(dāng)你把它們都看完的時(shí)候,工作也不成問(wèn)題了。
最后我發(fā)現(xiàn),要找以前的代碼真不是一件容易的事情,應(yīng)此我要做個(gè)文件和目錄的管理工具,具體的
實(shí)現(xiàn)方案
正在起草。可能本文中間會(huì)有些遺漏的地方,等以后想起來(lái)了再補(bǔ)上。其實(shí)這條路是沒(méi)有盡頭的,人類為了簡(jiǎn)化各種工作而發(fā)明了電腦和編程語(yǔ)言,應(yīng)此本著這個(gè)宗旨我會(huì)開發(fā)更多簡(jiǎn)單實(shí)用的工具來(lái)簡(jiǎn)化工作和生活。
posted on 2013-06-17 23:22
lwch
閱讀(2226)
評(píng)論(7)
編輯
收藏
引用
所屬分類:
其他
評(píng)論:
#
re: 5年編程之旅 2013-06-18 02:24 |
zapline
哪兩個(gè)函數(shù)不是從ring3切換到ring0和切回來(lái)的
是關(guān)閉是/開啟寫保護(hù)
回復(fù)
更多評(píng)論
#
re: 5年編程之旅 2013-06-18 08:56 |
lwch
@zapline
一個(gè)意思的啦~
回復(fù)
更多評(píng)論
#
re: 5年編程之旅 2013-06-18 09:28 |
Richard Wei
還很年輕,加油
回復(fù)
更多評(píng)論
#
re: 5年編程之旅[未登錄](méi) 2013-06-18 10:20 |
jains
這精神我很敬仰, 我是散修, 目前還是入門, 我已經(jīng)入了差不多4年門.
為自己汗顏.
回復(fù)
更多評(píng)論
#
re: 5年編程之旅 2013-06-18 10:28 |
zapline
@lwch
你這篇文章里面很多錯(cuò)誤
例如 “而讀寫內(nèi)存則需要切到Ring0(因?yàn)橛蠳P嘛)。”
我只能認(rèn)為你過(guò)NP是用的別人的代碼
要保存好自己的代碼的話,在github建個(gè)庫(kù)吧
回復(fù)
更多評(píng)論
#
re: 5年編程之旅 2013-06-18 11:04 |
lwch
@zapline
當(dāng)時(shí)確實(shí)用的是別人的代碼,幾年前的東西記不清了,不要這么較真。
回復(fù)
更多評(píng)論
#
re: 5年編程之旅
2014-08-19 13:35 |
萬(wàn)馬奔騰
感謝LWCH的娃娃,當(dāng)年陪伴一起度過(guò)了多少游戲時(shí)間.
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
5年編程之旅
Ubuntu下Nginx中Trac配置過(guò)程
實(shí)習(xí)一周總結(jié)
VC2010 Lambda表達(dá)式簡(jiǎn)單分析
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
編譯原理交流群: 83905136
QLanguage交流群: 38843264
我的騰訊微博
我的新浪微博
QLanguage的新浪微博
QLanguage項(xiàng)目(GoogleCode)
QLanguage項(xiàng)目(GitHub)
博客已轉(zhuǎn)移到:
http://blog.q-devel.com
<
2010年9月
>
日
一
二
三
四
五
六
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
8
9
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
(92)
CMinus(2)
NScript(26)
QLanguage(24)
STL(9)
操作系統(tǒng)(6)
其他(4)
設(shè)計(jì)模式(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)
相冊(cè)
QLanguage
Blogs
某牛人的Blog
Projects
NScript Compiler
QLanguage Compiler
Redis
Redis中文命令手冊(cè)
Websites
C++奮斗園
VC知識(shí)庫(kù)
程序員聯(lián)合開發(fā)網(wǎng)
最新隨筆
1.?QParserGenerator的文法文件介紹
2.?5年編程之旅
3.?QParserGenerator代碼分析二(A fix&An example)
4.?QParserGenerator代碼分析一(生成LALR1 DFA)
5.?QCore/Library說(shuō)明文檔
6.?詞法分析器2(ε-NFA到DFA的轉(zhuǎn)換)
7.?詞法分析器1(正則表達(dá)式到ε-NFA的轉(zhuǎn)換)
8.?山寨STL實(shí)現(xiàn)之內(nèi)存池V2
9.?如何比較兩個(gè)變量的類型是否相同
10.?山寨STL實(shí)現(xiàn)之list
11.?山寨STL實(shí)現(xiàn)之內(nèi)存池
12.?山寨STL實(shí)現(xiàn)之vector
13.?山寨STL實(shí)現(xiàn)之traits,construct&destruct
14.?山寨STL實(shí)現(xiàn)之a(chǎn)llocator
15.?山寨STL實(shí)現(xiàn)筆記
搜索
積分與排名
積分 - 163692
排名 - 162
最新評(píng)論
1.?re: 5年編程之旅
感謝LWCH的娃娃,當(dāng)年陪伴一起度過(guò)了多少游戲時(shí)間.
--萬(wàn)馬奔騰
2.?re: 5年編程之旅
@zapline
當(dāng)時(shí)確實(shí)用的是別人的代碼,幾年前的東西記不清了,不要這么較真。
--lwch
3.?re: 5年編程之旅
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--zapline
4.?re: 5年編程之旅[未登錄](méi)
這精神我很敬仰, 我是散修, 目前還是入門, 我已經(jīng)入了差不多4年門.
為自己汗顏.
--jains
5.?re: 5年編程之旅
還很年輕,加油
--Richard Wei
閱讀排行榜
1.?LR(0),SLR(1),LR(1)分析器源碼(4774)
2.?觀察者模式(4347)
3.?自制虛擬機(jī)框架(3853)
4.?實(shí)習(xí)一周總結(jié)(3644)
5.?山寨STL實(shí)現(xiàn)之vector(3556)
評(píng)論排行榜
1.?使用面向組合子算法寫詞法分析器(9)
2.?自制虛擬機(jī)框架(9)
3.?觀察者模式(8)
4.?CosmosKernel初探(8)
5.?代理模式(7)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 lwch
亚洲va中文字幕无码久久不卡
|
91久久精品国产成人久久
|
性欧美大战久久久久久久
|
yy6080久久
|
久久线看观看精品香蕉国产
|
久久亚洲国产成人影院网站
|
香蕉久久av一区二区三区
|
色综合久久88色综合天天
|
亚洲一级Av无码毛片久久精品
|
久久综合亚洲欧美成人
|
久久99久久无码毛片一区二区
|
亚洲欧洲久久久精品
|
久久国产乱子精品免费女
|
亚洲va久久久久
|
91精品国产综合久久香蕉
|
欧美喷潮久久久XXXXx
|
久久久久一本毛久久久
|
久久精品国产久精国产
|
18岁日韩内射颜射午夜久久成人
|
国产精品无码久久久久
|
久久午夜羞羞影院免费观看
|
狠狠色丁香久久婷婷综合蜜芽五月
|
久久成人影院精品777
|
国产高潮国产高潮久久久
|
久久精品人妻中文系列
|
亚洲欧美国产精品专区久久
|
色偷偷偷久久伊人大杳蕉
|
久久福利片
|
久久996热精品xxxx
|
97久久精品人人澡人人爽
|
久久最新精品国产
|
亚洲国产成人久久精品影视
|
MM131亚洲国产美女久久
|
久久久无码一区二区三区
|
久久久久久精品久久久久
|
亚洲伊人久久成综合人影院
|
亚洲国产成人精品女人久久久
|
久久精品国产免费观看
|
国产亚洲美女精品久久久2020
|
亚洲精品综合久久
|
狠狠色婷婷久久一区二区
|