re: VS2005類向?qū)У膯栴} LOGOS 2006-12-31 16:37
基類析構(gòu)函數(shù),virtual之
re: 勵(lì)志2007 LOGOS 2006-12-30 18:03
[quote]然而卻無法改變一個(gè)軟件的質(zhì)量[/quote]
呵呵。一個(gè)團(tuán)隊(duì)做出來的軟件對(duì)比個(gè)兒而言太龐大了,通常大多數(shù)人就像運(yùn)作中的一個(gè)齒輪,即使運(yùn)作方向錯(cuò)誤,一個(gè)齒輪很難逆轉(zhuǎn)的。
D3DUSAGE_DYNAMIC,沒有使用這個(gè)嗎?
re: C++是否可以考慮增加智能指針 LOGOS 2006-12-22 14:26
Francis Arcanum說的沒錯(cuò)。
此外,智能指針并不是你所說的這個(gè)概念
re: 建造原型的代價(jià) LOGOS 2006-12-22 14:17
[quote]面向?qū)ο蠹夹g(shù)只是將1000塊磚分割成10組100塊磚,不是根本的解決之道[/quote]
有理。
原型代碼確實(shí)是為了扔掉而扔掉的。
re: Progressive Mesh LOGOS 2006-12-19 17:09
[quote]Progressive Mesh的思想是,預(yù)先處理模型數(shù)據(jù),使用Octree樹分割,生成LOD數(shù)據(jù),寫到磁盤上。運(yùn)行時(shí)載入,檢測(cè)當(dāng)前View Frustrum的位置,應(yīng)用LOD繪制場(chǎng)景。[/quote]
·····真的是這樣子的嗎
re: 循環(huán)的效率 LOGOS 2006-12-18 11:14
寫成 for (i=0; i<row*col; ++i)如何?
··········確實(shí)令人羨慕
能那么早就碰程序
你的郵箱就是msn號(hào)吧,我已經(jīng)加進(jìn)去了,并發(fā)送了QQ號(hào).
有時(shí)間多交流~
PS:我的郵箱就是msn號(hào)
re: quake引擎框架 LOGOS 2006-12-04 12:07
gameres.com有,完整的包括renderer等各個(gè)部分.
不過你要看清楚了,下載quake3而不是quake或者quaketool
re: 源碼閱讀 LOGOS 2006-12-03 10:49
謝謝
re: FreeType2研究 LOGOS 2006-11-08 16:43
要跑到游戲領(lǐng)域上去?
re: class的沼澤地 LOGOS 2006-10-20 12:23
LZ見解不錯(cuò),不過最終沒有給出如何切薄膠合物的方法。
如果從設(shè)計(jì)一個(gè)庫的角度來講,庫的核心最好僅用有限的接口就好(緊湊+正交)。然后通過膠合物wrapper來包裝庫的功能,提供“便利”方法。
如此,核心始終是可以復(fù)用的,而wrapper在一定程度上也可以復(fù)用,大不了扔掉重寫也無所謂。
如果是設(shè)計(jì)一個(gè)應(yīng)用,那么最小接口并不是必須的,應(yīng)該用最合適的接口,以達(dá)到能將應(yīng)用框架透明表現(xiàn)出來的目的。
其實(shí)OO的精髓應(yīng)該是,只是那么一些子類擴(kuò)展行為的地方需要繼承而已,其他的一層就夠了。
re: 聊內(nèi)存池技術(shù) LOGOS 2006-10-15 21:25
一個(gè)是基于模版的分配器,另一個(gè)是基于鏈表池的分配器
re: 雜亂的設(shè)計(jì)念頭 LOGOS 2006-09-20 17:10
其實(shí)最終確定下來的念頭是,要做一個(gè)collide AI模塊,把所有麻煩的東西集中到一起。
呵呵。如果從匯編,甚至機(jī)器碼的角度來看待程序,那么,很多語言特性將不復(fù)存在。因?yàn)檫@些特性都是在編譯期得到保證的,比如:public, const等。
這也就是,很多時(shí)候憑著一個(gè)指針就可以在C/C++中走天下了。
不過對(duì)于接口類(全是純虛函數(shù)),透過指針的操作要三思而行。
re: 使用UNICODE提高效率 LOGOS 2006-09-12 09:10
看你的東東越來越辛苦了。我必須看一遍,關(guān)掉頁面,再打開,寫評(píng)論,不然memory就被吃光了。
unicode的本質(zhì)意義是簡便的國際化,但是并不是說可以很隨意的使用unicode了,因?yàn)檐浖3R蕾囉趧e的庫,并不是每一個(gè)庫都有unicode實(shí)現(xiàn)的。
個(gè)人覺得,unicode的那點(diǎn)加速無關(guān)緊要。如果你的軟件慢了,還是從別的地方進(jìn)行優(yōu)化的好。
re: 讀《UNIX編程藝術(shù)》第四章 LOGOS 2006-09-11 09:45
呵呵。你如果時(shí)間緊張的話,每天看個(gè)3,5頁就可以了。
好書是值得慢慢看,并且多看幾遍的。
這個(gè)頁面(不知道是否包括你站點(diǎn)上其他的頁面),可以造成我瀏覽器的內(nèi)存泄漏,會(huì)把整個(gè)機(jī)器吃了.
我用長風(fēng)瀏覽器(IE內(nèi)核).....
re: 臨時(shí)對(duì)象的生存期 LOGOS 2006-09-05 17:17
老實(shí)說,總感覺這種討論意義不大,因?yàn)楦疫@么用string("hello").c_str()的人,應(yīng)該把他給開除了....
除了給項(xiàng)目添亂,還能干什么
re: 沉默是金 LOGOS 2006-08-25 14:22
呵呵.我只是說"除非有足夠的理由懷疑用戶可能會(huì)選NO,或者取消該行為的時(shí)候,才給出確認(rèn)對(duì)話框。".
其他的就沒什么了
re: 讀后感:Doom啟世錄 LOGOS 2006-08-18 12:14
電子版我也有.不過沒敢看.那種字體顏色和背景....看完眼睛真的會(huì)垮掉的
呵呵.怎么說呢.
討論IPC,就說明討論的是需要通訊的任務(wù)(進(jìn)程/線程).
線程與進(jìn)程的本質(zhì)區(qū)別,應(yīng)該是地址空間問題.進(jìn)程是獨(dú)立的,線程是共享的.
UNIX的元老們最害怕的應(yīng)該就是沒有隱私吧.
線程的通訊方式通常是共享數(shù)據(jù)結(jié)構(gòu)(全局變量),全局變量是單份的,線程們要使用的話,必須競(jìng)爭.如果線程過多,資源的分布過分復(fù)雜,也許會(huì)有意想不到的死鎖問題.通常死鎖....誰能預(yù)見呢?
至于時(shí)序問題,其實(shí)在大學(xué)有認(rèn)真學(xué)習(xí)過"操作系統(tǒng)",都知道怎么完美的控制各個(gè)任務(wù)的執(zhí)行時(shí)序的.
的確,不能說“時(shí)序問題、競(jìng)爭/死鎖問題”歸為線程帶來問題,不過這兩個(gè)問題領(lǐng)域,似乎是在線程編程的時(shí)候才顯得尤其突出的.
使用對(duì)象的確能把線程封裝得很好,不過這種很好,仔細(xì)想想,是對(duì)于不需要通訊的線程很好吧.只要用全局變量進(jìn)行通訊,還是會(huì)繞回原來的點(diǎn)上.
另外,將任務(wù)做成進(jìn)程而不是線程還基于這樣一個(gè)理由,重用.
雖然說線程的代碼包裝得好,可以像一個(gè)類庫一樣重用.但是一個(gè)進(jìn)程的重用,是在編譯成一個(gè)執(zhí)行文件之后,用批處理調(diào)用的重用.
你覺得是一個(gè)類(包含不少接口,并且有調(diào)用順序/環(huán)境之類的約束,要命的是好像它還是線程)重用得順手,還是像"SomeTast.exe -SomeParam"這樣在主程序中執(zhí)行bat命令舒坦呢?
因人而異吧.
并沒有反對(duì)線程的意思.只是想說,能用簡單的先用簡單的吧.下班越早越好,是吧.
嗯.看了LZ所說,想到的極端做法是,凡是有switch的地方,都用virtual function代替.
re: 總結(jié)大一的生活! LOGOS 2006-08-06 11:17
呵呵.贊一個(gè).
我之前玩ACM的時(shí)候也最郁悶PE了,而且還是笨到不知道怎么改正的地步.
后來暑假說要集訓(xùn).估計(jì)自己受不來這苦頭,就畏縮的跑掉了.
現(xiàn)在看到自己以前的同學(xué)都搞得火熱的時(shí)候,狂羨慕啊.
re: 濫用assert LOGOS 2006-07-29 11:05
寫代碼的時(shí)候仍然很煩躁,于是再次review大家的評(píng)論,發(fā)現(xiàn)了一個(gè)是使用assert還是老實(shí)處理的重要區(qū)別----"有個(gè)原則,在Release版本,不管發(fā)生什么,不要讓程序crash掉."
所以使用assert之前,先考慮那個(gè)地方在release下是否會(huì)存在非法/錯(cuò)誤情形,要為可能的crash負(fù)責(zé).
re: 濫用assert LOGOS 2006-07-16 15:31
嗯.我知道各位的意思.各位都特別針對(duì)了release
而我的意思是,希望能將這種非法性杜絕在debug中,在assert的保護(hù)下進(jìn)行測(cè)試,即使出現(xiàn)問題也能很快的定位到發(fā)生位置,然后進(jìn)行代碼修改.到了release版本中,這種非法性就認(rèn)為不存在了,至少不能將其和錯(cuò)誤混為一談吧.
支持.你所說的入門學(xué)習(xí)方式的確很正確.
只瀏覽概念,熟悉整體框架.
具體的細(xì)節(jié),留到用的時(shí)候再去查找就是了.目前很多書都跟字典一個(gè)德性.
re: 濫用assert LOGOS 2006-07-16 12:54
@小明
debug版本的目的,就是盡量去除bug和不安定的狀態(tài),release版本是用來發(fā)布的,不是用來處理那些本不應(yīng)該出現(xiàn)的非法情形的.如果你真的那樣做的話(用if),你一定會(huì)被繁瑣死的.
另外,關(guān)于你舉的例子,請(qǐng)看倒數(shù)第二段,第三段.
PS:我的只不過是一家之言,不一定是正確的.謝謝你的評(píng)論
re: 引以為戒 LOGOS 2006-07-15 18:45
哈哈.活該
幸好我遭遇這種狀況的時(shí)候只是一個(gè)小程序,并且發(fā)現(xiàn)了這一點(diǎn).
你的原創(chuàng)內(nèi)容都很好.呵呵.我比較喜歡原創(chuàng)的東西.
嗯.我已經(jīng)下了boost練習(xí)了一下.
發(fā)現(xiàn)它不能適合類的初始化,因?yàn)槌跏蓟臄?shù)據(jù)是手工編輯的.
boost/serialization的數(shù)據(jù)格式有3,binary,txt,xml.
binary的基本上不指望能手工編輯.
txt的話基本上看不明白它的結(jié)構(gòu)是如何安排的,也不能手工編輯.
xml的話,雖然有key-value對(duì),但是boost/serialization并不關(guān)心配對(duì)情形,它參照的只是先后順序,也就是說:
<key1>5</key1> 和 <key2>5</key2>
<key2>6</key2> <key1>6</key1>
是完全一樣的....
順序過于嚴(yán)格,而key的數(shù)量又太多的話,由于編輯數(shù)據(jù)產(chǎn)生的奇異狀況估計(jì)沒那么容易捕獲.
不過對(duì)于序列化(非初始化),的確是一個(gè)相當(dāng)棒的方案.
嗯.也許可以說是分離編譯的功能已經(jīng)被支持,但是那個(gè)語法標(biāo)準(zhǔn)沒有被MS采納而已.
汗.你要用RPC的話,用web service比DCOM好多了.
關(guān)于OnIdle()的事情我也經(jīng)歷過.
我那次將Ogre嵌入了MFC中,引擎的渲染調(diào)用放到OnIdle()中激活.
起初無修改的情況下,需要不斷移動(dòng)鼠標(biāo)才能激活OnIdle()消息(有可能相反,因?yàn)槲彝浟?不過問題確實(shí)存在).
后來所做的修改是在自己實(shí)現(xiàn)的OnIdle()中返回TRUE,而不是返回父類OnIdle()的結(jié)果,就能連續(xù)不斷的產(chǎn)生IDLE消息
總算知道怎么做了.
不過覺得ADO提供這樣的接口很爛,復(fù)雜,特殊.
呵呵.你的內(nèi)容不錯(cuò).
不過我發(fā)現(xiàn)留言比較少,所以給你留一個(gè),希望你能堅(jiān)持寫blog,不然我就沒得欣賞了.
re: KMP算法的實(shí)現(xiàn) LOGOS 2006-07-05 18:13
數(shù)據(jù)結(jié)構(gòu)課程上給過的算法.
說實(shí)話,我一直不能從書上那簡單的描述中理解這個(gè)算法,直到現(xiàn)在仍然如此,慚愧.
謝謝兩位.我搜索了一些boost序列化的文章,的確是挺簡潔的.
那個(gè),現(xiàn)在主流上不把那個(gè)特性叫做動(dòng)態(tài)決議
即使真的做不到,也要努力去嘗試一下,連試都不試的話,還真是讓人鄙視啊.
想到以前應(yīng)聘一個(gè)程序兼職的時(shí)候,項(xiàng)目經(jīng)理也讓我立即上機(jī)做2個(gè)可以隨意切換,自動(dòng)判別數(shù)據(jù)類型的排序算法.我當(dāng)時(shí)就覺得有點(diǎn)犯暈.雖然不是說寫不出來,只是這么折騰不能馬上寫出來,畢竟平時(shí)不是寫這些玩的.當(dāng)時(shí)真想馬上滾蛋,不過覺得很什么都不做的話會(huì)很丟面子啊,就坐下來慢慢寫了.
當(dāng)然,最終寫出來啦,只是個(gè)人感覺是一段很糟糕的程序.
嗯,在VS2005里面要打開中文名的文件,就要用setlocale,可是一旦改變?cè)O(shè)置之后....cout就沒有辦法輸出中文了.....
@pandaxiaoxi
在編輯文章的時(shí)候,網(wǎng)站的編輯工具中有一個(gè)"代碼"的按鈕,點(diǎn)擊那個(gè)你就明白了
re: 編程感悟 LOGOS 2006-06-30 19:26
Arcrest領(lǐng)悟很深啊。^_^
我會(huì)去你的blog逛逛的,你可要寫些好東西啊
1樓的也許知道。
但是你是用MT選項(xiàng)進(jìn)行編譯的嗎?用MT的話應(yīng)該不會(huì)有配置問題的。