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