小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

十年MFC經(jīng)歷認(rèn)識(shí)的Microsoft技術(shù)

 ShangShujie 2007-04-07
一讀感覺不錯(cuò),再度感覺孫真乃高人哦,我望塵莫及,所以在此推薦給各位,大家共同奮斗,提高自己的技術(shù)...

 

因?yàn)槲恼卤容^長(zhǎng),這里的BBS有限制,所以分為兩篇

*******************************

自從2005年3月8日下午16時(shí)“十年MFC經(jīng)歷認(rèn)識(shí)的Microsoft技術(shù)”以帖子的方式發(fā)表于CSDN論壇后,引起了許多網(wǎng)友得好評(píng),使得筆者誠(chéng)惶誠(chéng)恐,考慮到該貼過長(zhǎng)(人氣指數(shù)為5000),因此轉(zhuǎn)移到Blog上,許多網(wǎng)友對(duì)此帖的評(píng)語只好省略,在此鄙人謝過了!為感謝網(wǎng)友的支持,本人希望今后能發(fā)出新的帖子以回報(bào)網(wǎng)友對(duì)我的鼓勵(lì),再一次謝謝!

初識(shí)MFC  
       我最初知道MFC大概是在1993年,那個(gè)時(shí)候Visual  C++還沒面世,當(dāng)時(shí)Microsoft的C++編譯器還很弱,官方的名字是Microsoft  C/C++  7.0,MFC的版本是1.0,幾乎沒有引起什么反響,那個(gè)時(shí)期最好的C++開發(fā)環(huán)境是Borland  C++  3.1,其實(shí),大概是1992年11月份,一個(gè)偶然的機(jī)會(huì),我領(lǐng)略到Borland公司的厲害,記不得在什么地方,我看到一個(gè)絕妙的集成開發(fā)環(huán)境,即Turbo  C++  3.0  for  Windows,這是我記憶中第一個(gè)真正的Windows環(huán)境下的C++集成開發(fā)環(huán)境,那種激動(dòng)的感覺至今仍記憶猶新,不客氣的說,當(dāng)時(shí)至少在C++方面,Microsoft與Borland不是一個(gè)水平的,Borland明顯的要高于Microsoft  ,Borland的產(chǎn)品在技術(shù)上給我留下深刻的印象。那個(gè)時(shí)候Microsoft最好的開發(fā)平臺(tái)是Visual  Basic  3.0,而Borland的Delphi正處于開發(fā)階段(Delphi  的代碼名稱是:“VB  Killer”)……,想起這些十幾年前的往事,我不禁感慨萬千。  
十幾年來,我用過許多開發(fā)環(huán)境,關(guān)于Visual  Basic,我用過最早的DOS版本,Windows版的Visual  Basic我基本上全都用過,至今我還記得每個(gè)版本的VB安裝盤磁盤的盤數(shù)。同樣,我用過各個(gè)版本的Delphi,特別是Delphi  2.0,給我留下極好的印象。Delphi提供真正編譯的可視化開發(fā)環(huán)境,那個(gè)時(shí)候(1994年左右),Delphi就可以開發(fā)帶有GUI的動(dòng)態(tài)鏈接庫,你可以想象,在Microsoft  Access  2.0的應(yīng)用程序中可以加載一個(gè)Delphi  Form并進(jìn)行程序交互,那種感覺真是棒極了。  
    Borland  C++是我心中無法抹掉的遺憾,從Turbo  C到C++  Builder,我深刻的體驗(yàn)到Borland的輝煌和無奈,Delphi從VB  Killer走到為VB護(hù)航(你可以想象Delphi一步到位的ActiveX  控件開發(fā)技術(shù)有多牛,早期的VB有多土,早期的VB不能開發(fā)動(dòng)態(tài)鏈接庫,因此無法開發(fā)ActiveX  控件,想起來真令人噓唏不已),Borland  C++的命運(yùn)也是不濟(jì)。Borland  C++  3.1的輝煌永遠(yuǎn)不再了,十幾年的開發(fā)工作中,我在C++上投入了大量的精力,Borland  C++曾經(jīng)給我?guī)頍o數(shù)的激動(dòng),然而這個(gè)經(jīng)典的名字卻在與Microsoft的競(jìng)爭(zhēng)中漸漸的流逝了……。  
MFC4.0的出現(xiàn),使得人們感覺Microsoft在C++方面趕上來了,這一版的MFC是Win95推出后出現(xiàn)在Visual  C++  4中(Microsoft沒有VC  3,VC4以前的版本是2.2、2.1、2.0、1.51、1.5、1.0)。也許是對(duì)Borland  C++的潛意識(shí)的失望,我不知不覺的接受了MFC,VC  4.2推出時(shí),我通過正常渠道購買了這個(gè)編譯器的企業(yè)版。 

 

 關(guān)于Microsoft  
       關(guān)于Microsoft,有無數(shù)的人要對(duì)這個(gè)名字?jǐn)⒄f感覺,這個(gè)令人討厭的名字!不知道是喜歡還是憎惡,你是程序員,你的心思可能就要因Microsoft的存在而動(dòng),即使你用Linux,你可能也是因?yàn)镸icrosoft技術(shù)因素。多少年來,這個(gè)名字每天都出現(xiàn)在你、我、他的面前,因?yàn)槟悴坏貌幻鎸?duì)Windows的存在,可是你憎恨這個(gè)名字嗎?你討厭這個(gè)名字嗎?我不知道是否已經(jīng)對(duì)這個(gè)名字麻木了。1998年我個(gè)人訂了Microsoft  MSDN  Universal  版,我開始比較全面接觸這個(gè)公司的開發(fā)技術(shù),你可以想象,1998年當(dāng)你面對(duì)上百張技術(shù)光盤的時(shí)候,你就知道什么叫做“厚度”,當(dāng)我們有時(shí)說出“趕上”或  “達(dá)到”Microsoft某些產(chǎn)品的水平的時(shí)候,可能我們?nèi)狈?duì)這個(gè)公司“厚度”的真實(shí)了解。進(jìn)入MSDN,我感覺Microsoft簡(jiǎn)直不是一個(gè)“公司”,而是(或者正在形成)一個(gè)“社會(huì)”。當(dāng)時(shí)著名的技術(shù)網(wǎng)站
http://www.全部的技術(shù)資料是可下載的(那個(gè)時(shí)候http://www.提供整個(gè)網(wǎng)站內(nèi)容下載服務(wù),大約3M左右),大名鼎鼎的www.codeproject.com還不存在。一開始,我始終潛意識(shí)在技術(shù)上對(duì)比Microsoft與Borland,應(yīng)當(dāng)說技術(shù)上Borland不比Microsoft弱,即使現(xiàn)在也有人持有這個(gè)看法,可是為什么Borland走到今天這個(gè)地步?而Microsoft卻如日中天?若干年前,這兩個(gè)公司競(jìng)爭(zhēng)何等激烈,而現(xiàn)在卻是另一番“合作”的景象?可能很多人想過,如果Borland不存在,對(duì)Microsoft不是更有力嗎?其實(shí)Microsoft可能精通中國(guó)歷史,讀過《三國(guó)》、十分了解戰(zhàn)國(guó)時(shí)期的中國(guó),其實(shí)Borland形式上的存在,對(duì)Microsoft是十分有利的,至少形式上還有競(jìng)爭(zhēng)對(duì)手,而事實(shí)上Borland已經(jīng)受控于Microsoft(Microsoft是Borland的大股東)。你可以看到一些微妙的現(xiàn)象:Borland為Microsoft提供了大量的人才,其中包括Delphi總設(shè)計(jì)師以及Borland  C++編譯器的核心成員;同時(shí)也為Microsoft  .NET提供強(qiáng)有力的護(hù)航服務(wù)(看看C#  Builder、Delphi  .NET)。1998年Microsoft  的COM技術(shù)基本已經(jīng)成熟,這個(gè)技術(shù)使人感到震撼,當(dāng)時(shí)Microsoft的對(duì)手們提出“OpenDoc”用于對(duì)抗“COM”,你看看“OpenDoc”陣營(yíng)的幾個(gè)成員:IBM、Apple、Borland、Novell,你會(huì)感到這個(gè)陣營(yíng)十分豪華、強(qiáng)大。但結(jié)果卻差強(qiáng)人意,“OpenDoc”無疾而終,而“COM”依然生機(jī)勃勃。  
    有人說“COM”沒落了,那么就太不了解Microsoft了。在與“OpenDoc”的競(jìng)爭(zhēng)中,“COM”是個(gè)徹底的勝利者,在與“Java”的競(jìng)爭(zhēng)中,“COM”成功的進(jìn)化了,在這個(gè)過程中Microsoft體現(xiàn)了強(qiáng)大的吸收能力、以及無法想象的韌勁。.NET只不過是COM的“別名”而已。對(duì)于一個(gè)經(jīng)驗(yàn)豐富的C++程序員而言,.NET就是COM的進(jìn)化,而Microsoft內(nèi)部.NET就是“COM  3.0”(OLE2就是COM  2.0),而“CLR”就是一個(gè)不擇不扣的COM對(duì)象。曾經(jīng)有人問我,既然牛頓時(shí)代就奠定了基礎(chǔ)(想想著名的牛頓-萊布尼茨公式),幾百年后的今天,數(shù)學(xué)還研究“微積分”嗎?回答當(dāng)然是依然在研究!“微積分”早期是針對(duì)函數(shù)的,現(xiàn)代“微積分”是針對(duì)“流形(Manifold)、纖維叢(Fiber  Bundle)”的,概念深?yuàn)W了,可是基本思想不變,只是“微積分”的思想得到合理的延拓與進(jìn)化,你了解Microsoft嗎?Microsoft  Research有一批超一流的數(shù)學(xué)家在為Microsoft工作,其中一些是斐爾茲獎(jiǎng)的得主,Microsoft正在實(shí)現(xiàn)如同“微積分”進(jìn)化到“微分流形”一樣將“COM”進(jìn)化到“.NET”。從科學(xué)概念角度上分析COM與Java,可能COM更全面、精確,從實(shí)現(xiàn)的成熟度上Java可能更成熟,可是你看到,Microsoft正在不緊不慢的追趕。Microsoft令人聯(lián)想起戰(zhàn)國(guó)時(shí)期的強(qiáng)秦。    
戰(zhàn)國(guó)時(shí)期的秦國(guó),采取“遠(yuǎn)交近攻”“撫弱掠強(qiáng)”等措施傲視六國(guó),今天的Microsoft也是這樣,VB1.0時(shí),Microsoft推出“VBX”控件技術(shù),眾多的小公司得以生存,Microsoft自己不開發(fā)“VBX”組件,同樣“VBX”進(jìn)化為“OCX”時(shí),Microsoft并不十分強(qiáng)大,可是這種試探得到眾多小公司的響應(yīng)。1997年Microsoft  Office  97、1998年Microsoft推出Visual  Studio  6.0,給眾多中、小公司提供了生存、發(fā)展的機(jī)會(huì),例如Microsoft  Office  97中集成了Visual  Basic  for  Application  5.0,這項(xiàng)技術(shù)使得幾百家軟件開發(fā)商與Microsoft簽署了VBA技術(shù)許可協(xié)議,即使AutoDesk這樣的公司都與Microsoft簽署了這個(gè)協(xié)議,這個(gè)協(xié)議使得每個(gè)集成VBA的產(chǎn)品的給個(gè)用戶許可為Microsoft付40$的許可費(fèi),如果你了解VSIP(Visual  Studio  Integration  Protocol)協(xié)議,以及有多少公司簽訂了VSIP協(xié)議,你就真正感覺到Microsoft的可怕;Microsoft  Office  97、Visual  Studio  6.0的用戶界面十分漂亮,為什么Microsoft自己的開發(fā)工具不提供類似的軟件組件?你看到眾多第三方的Microsoft盟友紛紛推出自己的界面庫以模仿Microsoft,他們不會(huì)反對(duì)Microsoft,因?yàn)樗麄円呀?jīng)形成了使得Microsoft以及這些公司得以生存的生態(tài)圈。  
    Microsoft的技術(shù)儲(chǔ)備有多少,Microsoft之外的人很難說清楚,Microsoft中國(guó)公司也未必了解多少,1999年WTL類庫剛剛出現(xiàn)的時(shí)候,人們就希望WTL能得到官方的支持,或授權(quán)給一個(gè)Microsoft之外的一個(gè)公司(你能想象出Borland  C++  5.0內(nèi)置的ActiveX開發(fā)機(jī)制是基于Microsoft  ATL類庫嗎?),直到今天,WTL依然如故,我們完全相信,如果Microsoft強(qiáng)力推廣WTL,WTL完全可以流行,可是Microsoft不缺類似的技術(shù),類似的類庫還有BCL(Base  Control  Library,一個(gè)用于開發(fā)輕量級(jí)ActiveX控件的類庫),Microsoft還有一個(gè)基于ATL的類庫,這個(gè)類庫用于開發(fā)ActiveX  Designer,ActiveX  Designer是絕大多數(shù)程序員不了解得一類對(duì)象,如果你熟悉Office開發(fā),你知道Office  VBA  中有一類對(duì)象,即Form2,此外VB6.0  中的報(bào)表設(shè)計(jì)器(以及著名的Active  Reporter),都屬于此類對(duì)象,用這個(gè)類庫,你可以為VB6.0以及集成VBA的系統(tǒng)提供定制化的可視化設(shè)計(jì)機(jī)制等等,如今ActiveX  Designer已經(jīng)演化為集成于Visual  Studio  .NET中的設(shè)計(jì)器。

 

向Microsoft學(xué)習(xí)  
       無論從什么角度評(píng)價(jià)Microsoft,我覺得Microsoft是值得我們學(xué)習(xí)的,如果說生活在這個(gè)時(shí)代有Microsoft存在是一場(chǎng)災(zāi)難,你就應(yīng)該痛恨這個(gè)家伙,但你首先要向這個(gè)家伙學(xué)習(xí)!我無意為Microsoft歌功頌德,我只是想說出十幾年我對(duì)Microsoft技術(shù)的感受。  
       Microsoft在研究式的開發(fā)中受益極大,如果你有興趣,你可以訪問
http://research.microsoft.com/,雖然部分中國(guó)公司也有研究院,但與Microsoft相比,真有“米粒之珠,也放光華?”的感覺。2003年,我在北京的一個(gè)地方現(xiàn)場(chǎng)體驗(yàn)了Microsoft亞洲研究院的招聘會(huì),我看到中國(guó)的精英們進(jìn)入Microsoft的渴望,事實(shí)上,在中國(guó)大陸,Microsoft亞洲研究院的人力資源已經(jīng)延伸到各著名高校的相關(guān)專業(yè)的核心層,我感到,Microsoft幾乎不需要“求賢”,因?yàn)椋灰狹icrosoft需要,精英們會(huì)“蜂擁而至”,每個(gè)人都有“可以理解”的理由而向往那個(gè)地方,如果為搞數(shù)學(xué)研究蜂擁到加州大學(xué),我覺得可以理解,因?yàn)槟抢镉袛?shù)學(xué)土壤,出了成果國(guó)人也會(huì)感到自豪,因?yàn)椤翱茖W(xué)無國(guó)界”。技術(shù)是否有國(guó)界?不知道是否有定論?!想想DVD等技術(shù)專利給國(guó)內(nèi)業(yè)界帶來的災(zāi)難,不知道應(yīng)不應(yīng)該痛定思痛,在Microsoft校園招聘現(xiàn)場(chǎng)的氣氛中,我似乎明白了為什么國(guó)人“原創(chuàng)技術(shù)”少得可憐。我讀過幾本Microsoft亞洲研究院的高手寫的書,明顯可以看出,Bill  gate  是他們的精神領(lǐng)袖以及他們對(duì)Microsoft的虔誠(chéng),國(guó)內(nèi)的研究機(jī)構(gòu)應(yīng)當(dāng)研究一下Microsoft的用人之道,Microsoft好像是三國(guó)里的人物,不知是劉備還是曹操,或者二者的混合物。我經(jīng)常路過西格瑪大廈,第一次西格瑪大廈進(jìn)入真有“朝圣”的感覺,也與Microsoft中國(guó)的幾個(gè)層次的人打過交道,各中滋味實(shí)在一言難盡。  
       在Office大戰(zhàn)中,國(guó)產(chǎn)軟件的確在一些方面與Microsoft進(jìn)行較量,其實(shí)給人的感覺很勉強(qiáng),界面上的似是而非,或用戶習(xí)慣方面的接近并不能解決根本的問題,一個(gè)好的軟件開發(fā)人員必須是一個(gè)軟件使用的高手,很難想象一個(gè)軟件操作水平很拙劣的開發(fā)人員能開發(fā)出高水平的軟件,我最早使用的軟件之一就是Microsoft  Word,當(dāng)時(shí)的版本是2.0,大概是1992年的事情,給我留下深刻印象的是集成于Word中的Word  Basic,后來,我接觸到Excel  3.0,不出所料,Excel中集成的是Excel  Basic,后來使用的Access中自然內(nèi)置Access  Basic  1.0,在這些軟件集成捆綁成Office之前,我就感覺這些產(chǎn)品的構(gòu)思十分了不起,很具有Microsoft的風(fēng)格,因?yàn)槟阒?,即使是一個(gè)DOS,Microsoft都要提供一個(gè)內(nèi)置的QBasic或GW  Basic。雖然關(guān)于Microsoft的產(chǎn)品評(píng)論很多,作為一個(gè)技術(shù)人員,我認(rèn)為Microsoft的產(chǎn)品構(gòu)思絕對(duì)是第一流的,從1994年早期的Office系列到1997年形成的Office  4.2,我認(rèn)為,技術(shù)構(gòu)思上均領(lǐng)先于我國(guó)2002年以后的Office產(chǎn)品,你聽說過如下說法嗎?“Dos  作為操作系統(tǒng)的時(shí)代,Windows是應(yīng)用軟件;Windows是操作系統(tǒng)時(shí),Office成為Dos時(shí)代的Windows;那么如果按此規(guī)律,Office會(huì)不會(huì)替代Windows而成為操作系統(tǒng)?”,現(xiàn)在在開發(fā)領(lǐng)域Visual  Studio(  .NET)正在成為另一個(gè)Office,你注意到了嗎?控制Visual  Studio(  .NET)集成開發(fā)環(huán)境的仍然是一個(gè)Basic語言引擎(Visual  Basic  .NET)。  
       與許多公司不同的是,在技術(shù)體系上,Microsoft幾乎所有的產(chǎn)品是息息相關(guān)的,Windows、Office、Visual  Studio  .NET雖然各不相同,但公共的核心即將形成,我們已經(jīng)看到,核心組件方面,Office與Visual  Studio  .NET日漸趨于一致,例如Microsoft正在將Office  2003的核心組件VBA  6.X逐步用新的Visual  Studio  Tools  for  Office替代,而我們依然在一些似是而非的現(xiàn)象上與Microsoft的產(chǎn)品比較差距,國(guó)家采購或政府采購支持的公司,不去鉆研核心技術(shù),只是急功近利的采用短期行為急于與Microsoft相爭(zhēng),不知是否有蚍蜉撼樹的感覺,個(gè)人的體驗(yàn)是,先學(xué)習(xí)Microsoft,踏踏實(shí)實(shí)的學(xué),了解Microsoft,深入的了解,然后再喊口號(hào)。

 

原文出處:
http://dev.csdn.net/develop/article/65/65546.shtm#Comment
作者:孫輝
******************************
一讀感覺不錯(cuò),再度感覺孫真乃高人哦,我望塵莫及,所以在此推薦給各位,大家共同奮斗,提高自己的技術(shù)...

 

因?yàn)槲恼卤容^長(zhǎng),這里的BBS有限制,所以分為兩篇

*******************************

為什么用MFC?              
       經(jīng)過若干年的競(jìng)爭(zhēng),Borland  的OWL幾乎消失了,這個(gè)OWL是個(gè)非常漂亮的C++類庫,在Borland  C++  3.1風(fēng)光無限的年代,OWL真正的做到了獨(dú)領(lǐng)風(fēng)騷。然而,Borland  C++  4.0錯(cuò)過了進(jìn)入32位程序的最佳時(shí)機(jī),BC  4.0推出后不久,迎來了Win95,Borland倉促上陣,以一個(gè)小的“Pack”使得BC4可以編譯基于Win4的程序,當(dāng)時(shí)的Visual  C++是2.0版,支持Window16的版本為Visual  C++1.51,有意思的是Borland可以用同一個(gè)編譯器同時(shí)支持Win16、Win32,而Microsoft卻不得不為Win16、Win32提供不同的編譯器。然而,非正式版本的Visual  C++  2.1與Visual  C++  2.2卻悄悄地支持了Win95的最新特征,即Win95新提供的一組公共控件,在我的印象中,Borland對(duì)Win95新特征的支持不利使得MFC與OWL的距離極大的縮短了。稍后到來的Borland  C++  4.5沒有改變這個(gè)狀況,盡管Borland  C++  5.0同時(shí)支持OWL與MFC,可是敗象已經(jīng)顯露,Borland  C++非常遺憾的只走到了5.5版。C++  Builder雖然形式上引入了Delphi的VCL庫,可是許多C++程序員并不買賬,因?yàn)樵S多以C++為樂的人更喜歡以編輯的模式進(jìn)行編碼。Visual  C++  4.0的出現(xiàn),在C++這個(gè)戰(zhàn)場(chǎng)上,Borland開始落敗了。  
       MFC發(fā)展到今天,已經(jīng)十多年了,盡管褒貶不一,但可以肯定,十幾年的技術(shù)積累已經(jīng)奠定了MFC的生存基礎(chǔ),即使Microsoft的長(zhǎng)角發(fā)布,MFC也不能推出Windows的舞臺(tái),事實(shí)上,長(zhǎng)角(Longhorn)之后的Visual  Studio  .NET仍將MFC作為一個(gè)重要的組成部分,在今年的Visual  Studio  .NET  2005中,MFC在C++中的位置依然如故。MFC的未來,應(yīng)該不必?fù)?dān)心,只要你深入考察.NET類庫,你會(huì)發(fā)現(xiàn),MFC的許多思想機(jī)制正悄然進(jìn)入.NET,與此同時(shí),Microsoft的第三方盟友十多年來已為MFC開發(fā)了大量的擴(kuò)展庫,如果Microsoft是船,第三方盟友就是載舟之水。許多人認(rèn)為MFC不發(fā)展了,其實(shí)是一種錯(cuò)覺,Visual  C++  6的界面十分經(jīng)典,特別是其中的Docking控制條機(jī)制,其實(shí)Visual  C++  6的IDE完全就是MFC寫的,可是MFC類庫中控制條相關(guān)的類功能很弱,為什么?你會(huì)看到許多與Microsoft友好的公司,他們很快的在MFC基礎(chǔ)上實(shí)現(xiàn)了Visual  C++  6  的Docking機(jī)制,這就是Microsoft的高明之處,Microsoft很會(huì)給盟友提供機(jī)會(huì),其一貫的做法就是在自己的商品化產(chǎn)品中預(yù)先提供一些有趣的特征,使得其他一些公司進(jìn)行模仿以帶動(dòng)用戶群體。Borland不具備這樣的儲(chǔ)備。MFC第三方市場(chǎng)的繁榮,得益于Microsoft的策略與明智。MFC可否跨平臺(tái)?理論上完全可以,Microsoft不做,也是策略,但是有許多重要的產(chǎn)品Microsoft卻默許MFC移植到其他平臺(tái),事實(shí)上,Microsoft的合作伙伴之一Mainsoft公司(Windows源碼就是從這家公司流失的),幾年來就是負(fù)責(zé)移植MFC程序移植到UINIX、Linux、AIX等操作系統(tǒng)之上。  
       新版的Visual  C++中MFC已經(jīng)支持.NET開發(fā)了,MFC與ATL的協(xié)作更好了。根據(jù)我的經(jīng)驗(yàn),MFC、ATL與.NET庫三者完全可以融合在一起綜合應(yīng)用到實(shí)際的開發(fā)工作中去,如果你是MFC行家,我希望ATL與.NET庫能成為你的忠實(shí)的左右手。那么有沒有同時(shí)支持MFC、ATL與.NET庫的程序?當(dāng)然有,Visual  Studio  .NET  IDE就是!而且Visual  Studio  .NET  IDE還支持用ATL與.NET庫擴(kuò)展的Addin。

 

認(rèn)識(shí)Application對(duì)象  
       如果你熟悉Microsoft  Office,你應(yīng)該進(jìn)一步的剖析這個(gè)大型軟件,Microsoft  Office中幾乎每個(gè)程序都是可二次開發(fā)的,這一點(diǎn)得益于Microsoft  Office內(nèi)置的二次開發(fā)機(jī)制,一個(gè)是基于COM機(jī)制的VBA模型,另一個(gè)是基于.NET框架的托管模型:Visual  Studio  Tools  for  Office。作為一名程序員,你應(yīng)當(dāng)在技術(shù)角度解析Office的技術(shù)結(jié)構(gòu)。Microsoft的大多數(shù)軟件的對(duì)象結(jié)構(gòu)可以通過Visual  Studio提供的工具OLE/COM  Object  Viewer考察其類型庫得到,通過引用類型庫,你甚至可以得到描述對(duì)象信息的C++頭文件。這樣做真是好處多多。一個(gè)典型的Office通常都有一個(gè)Application對(duì)象(或其他一個(gè)與之相當(dāng)?shù)膶?duì)象),這個(gè)對(duì)象相當(dāng)于軟件樞紐,在這里,我們不討論Office,借此話題說說Application對(duì)象。大多數(shù)支持?jǐn)U展(Addin、Plugin)的軟件都存在類似的構(gòu)造。通常,一個(gè)系統(tǒng)得Application對(duì)象或者是一個(gè)COM對(duì)象,或者是一個(gè).NET對(duì)象,如果你的系統(tǒng)存在這類對(duì)象,你的系統(tǒng)就基本具備支持Addin、Plugin的機(jī)制了。一個(gè)理想的做法就是在一個(gè)MFC系統(tǒng)中,內(nèi)置一個(gè)ATL對(duì)象或.NET對(duì)象,稍后我們給出方案如何做到這一點(diǎn)。設(shè)計(jì)Application對(duì)象的關(guān)鍵是如何規(guī)劃這個(gè)對(duì)象的屬性、方法、事件。如果你希望系統(tǒng)具備良好的擴(kuò)展性,Application對(duì)象是十分關(guān)鍵的,這也是構(gòu)架藝術(shù)的體現(xiàn)。所謂Addin(Plugin),是系統(tǒng)運(yùn)行時(shí)根據(jù)需要加載的對(duì)象庫,Addin(Plugin)之所以可以擴(kuò)展系統(tǒng),關(guān)鍵的因素就是系統(tǒng)加載Addin(Plugin)時(shí),將Application對(duì)象傳遞給Addin(Plugin)庫,設(shè)想一下,如果Application恰到好處的觸發(fā)了系統(tǒng)事件,而Addin(Plugin)庫如愿的解釋了事件,一個(gè)Addin(Plugin)庫的任務(wù)不就OK了嗎!因此Application對(duì)象是系統(tǒng)設(shè)計(jì)的關(guān)鍵。  
       如果你精通ATL對(duì)象,在你的MFC系統(tǒng)中添加一個(gè)ATL對(duì)象,這個(gè)任務(wù)可以用VC  Wizard完成。你已經(jīng)接受了一個(gè)事實(shí),就是MFC程序中存在一個(gè)CXXXApp對(duì)象(CWinApp的派生類),現(xiàn)在你要做的是增加一個(gè)對(duì)應(yīng)得ATL對(duì)象。這個(gè)對(duì)象可以在CXXXApp::InitInstance()中創(chuàng)建,如果ATL對(duì)象的類是CXXXAppObject,建議你在CXXXApp對(duì)象對(duì)象中增加一個(gè)成員變量,例如:CComObject  <CXXXAppObject  >*  m_pAppObj,然后可以入下初始化m_pAppObj:  
                                 m_pAppObj  =  new  CComObject  <CXXXAppObject  >;  
注意程序結(jié)束時(shí)在CXXXApp::ExitInstance()中釋放m_pAppObj,語句如下:  
                                 delete  m_pAppObj;  
你可以將系統(tǒng)得關(guān)鍵屬性設(shè)置成CXXXAppObject的屬性,例如系統(tǒng)得標(biāo)題、是否為多文檔等等。系統(tǒng)希望外部調(diào)用的功能可以實(shí)現(xiàn)為CXXXAppObject的方法,這一點(diǎn)取決于你的需要。系統(tǒng)需要外部擴(kuò)展的功能,表現(xiàn)為CXXXAppObject的事件,關(guān)鍵是在恰當(dāng)?shù)奈恢糜|發(fā)事件以及提供的事件參數(shù)。例如,你可以在CXXXApp::InitInstance()觸發(fā)應(yīng)用程序開始的事件OnStartUp,Plugin捕獲事件后,可以進(jìn)行特定的初始化(身份確認(rèn)、初始信息查詢等等);  
你可以在CXXXApp::ExitInstance()觸發(fā)應(yīng)用程序結(jié)束事件,Plugin捕獲事件后,處理用戶需要的系統(tǒng)退出工作。所有的設(shè)計(jì)取決于具體設(shè)計(jì)。  
       如何加載Plugin,是一個(gè)有趣的問題,如果Plugin實(shí)現(xiàn)為一個(gè)COM范疇(Category),可以運(yùn)用COM技術(shù)枚舉這個(gè)Category;可以將Plugin安裝到一個(gè)特定目錄,也可以通過注冊(cè)表。Plugin的實(shí)現(xiàn)可以用COM技術(shù)、也可以用.NET框架。適當(dāng)?shù)臋C(jī)會(huì)我會(huì)提供例子…… 

 

一些感想 

 

一時(shí)心血來潮,就發(fā)了這個(gè)帖子,很難說是有心,還是無意。幾天前我在新浪網(wǎng)上看應(yīng)氏杯圍棋決賽,我覺得該贏了吧,作為一個(gè)圍棋迷,我們等了十幾年,等到了屬于國(guó)人的應(yīng)氏杯。記得7、8年前在還在大學(xué)工作的時(shí)候,有一次,一位同事興致沖沖的走道我面前對(duì)我說:“嗨,昨天馬XX贏了李昌鎬!”,當(dāng)時(shí)我在系辦公室正在看報(bào)紙,那位仁兄見我頭都沒抬,非常不滿的搶下報(bào)紙,對(duì)我吼道:“喂!馬XX贏了李昌鎬??!你聽到?jīng)]有?。?!”,我對(duì)他說:“你大驚小怪個(gè)啥?!馬XX輸了李昌鎬多少盤,你知道嗎?”,馬XX幾乎一直在輸給李昌鎬,人們已經(jīng)不奇怪了,偶爾贏一次,國(guó)人就把他捧得北都找不到了,李昌鎬弱冠17的時(shí)候就傲視這個(gè)世界了,可至今面孔不變,幾天前的農(nóng)心杯,中日聯(lián)軍5個(gè)人,被他打個(gè)落花流水,李昌鎬是公認(rèn)的世界第一,以至于有的高手知道下一個(gè)對(duì)手如果是他,就會(huì)去訂回程機(jī)票。這次應(yīng)氏杯,國(guó)人竟然感謝崔哲瀚,何也?因?yàn)檫@個(gè)弱冠19的小子,擋住了他的大哥李昌鎬才使得應(yīng)氏杯有了懸念。當(dāng)國(guó)人媒體在說韓國(guó)僅李昌鎬一人厲害的時(shí)候,不知道是出何居心還是自欺欺人,李昌鎬年方30,不知道要力壓中、日多少年!面對(duì)這個(gè)名字,真有點(diǎn)麻木了,這個(gè)太極虎!軟件界又來了我們一向不齒的印度虎,2001年我們的軟件出口額僅是印度的四十分之一,我們震驚了,怎么可能呢?這個(gè)四十分之一水分很大,很可能更可憐!當(dāng)時(shí)我在大連參加一個(gè)關(guān)于“大連軟件出口國(guó)內(nèi)第一”的官方會(huì)議,那位大人在會(huì)上說:“據(jù)說,我們大連軟件出口國(guó)內(nèi)排名第一,市有關(guān)領(lǐng)導(dǎo)希望今天的會(huì)議給出這個(gè)第一的數(shù)字依據(jù),希望你們把數(shù)據(jù)報(bào)上來,去年的數(shù)據(jù)也可申報(bào),注意,我們要的只是數(shù)據(jù),你們仔細(xì)體會(huì),我們根據(jù)數(shù)據(jù),有獎(jiǎng)勵(lì),機(jī)會(huì)難得呀!”……。某一天,幾個(gè)朋友在我家看央視的對(duì)話節(jié)目,對(duì)話一方為國(guó)內(nèi)的軟件大鱷們(用友、阿爾派等公司的老總們),另一方為印度軟件的一個(gè)代表團(tuán)。當(dāng)問及中、印軟件差距的時(shí)候,我們的劉老總(代表阿爾派)不以為然的說,據(jù)他的看法,我們已經(jīng)快趕上(印度)了,……,言下之意頗有印度的水平不過如此的感覺,印度方的話我至今記憶猶新:“是否趕上,國(guó)際市場(chǎng)說的算!在中國(guó)看來,印度程序員的個(gè)性不足,技術(shù)也不怎么樣,其實(shí)是個(gè)錯(cuò)覺,印度軟件首先注重個(gè)性,許多重要的美國(guó)商品化軟件都是在印度本土開發(fā)的……”,我們的輿論總是將印度程序員的水平描述的平庸至極,可是差距日漸拉開,……,圍棋、足球(不好意思談,談不出口?。?、軟件,我們被近鄰嚴(yán)酷的封鎖了,樂壞了記者們、給媒體帶來了生機(jī)……  
       日本江戶時(shí)代的圍棋,如果一個(gè)人要想世襲一個(gè)稱號(hào)(例如:本因坊),他必須戰(zhàn)勝所有的師兄弟,然后,住進(jìn)師父家的內(nèi)室,你知道以后的事情嗎?以后,這個(gè)棋手,就得為師父一家做飯、帶孩子、搞衛(wèi)生……,其余的門人則一心一意的下棋,這樣的人、方式,造就了一代一代的本因坊,他們的棋譜大多數(shù)都流芳至今,這就是早期日本圍棋的悟道模式。軟件總共有多少語句?我最早接觸的計(jì)算機(jī)軟件教材是一本英文版的(影印的D版),不同于我們,那本書的作者構(gòu)造了“X-語言”,他們不講什么C、Pascal、Basic,一旦缺了什么機(jī)制,就給“X-語言”添加些成分。什么C、Pascal、Basic,你感覺差不多,但現(xiàn)在卻分出了等級(jí)!我們駕馭語言的能力弱得很,可是我們?cè)谡Z言的細(xì)微之處卻很講究,不知道對(duì)不對(duì),許多程序員也許是出于虛榮而用C++,事實(shí)上,地球人都知道,做數(shù)據(jù)庫,Delphi、VB遠(yuǎn)比C++勝任,鋪天蓋地的C++的書,寫的東西幾乎雷同,因?yàn)?,有用的或者作者不寫、或者作者不懂。有時(shí)我在想,如果國(guó)內(nèi)沒有內(nèi)需,會(huì)怎樣?也許軟件內(nèi)需的存在,造就了中國(guó)軟件的特色,我認(rèn)為國(guó)內(nèi)業(yè)界并沒有充分利用中國(guó)軟件內(nèi)需的存在,也許中國(guó)軟件內(nèi)需的存在是軟件落后的硬傷。  
       我記得一部電影《神辮》,那個(gè)英雄的大辮子被洋人炸掉了,最終他成了神槍手,戰(zhàn)勝洋人用大刀、秘籍是不行的,用洋的東西戰(zhàn)勝洋的技術(shù)才是正道。我覺得,一個(gè)好的程序員必須了解軟件的歷史,學(xué)習(xí)歷史,你知道你為什么弱,別人是如何強(qiáng)大的。我們正在另一個(gè)戰(zhàn)場(chǎng)上抗美(可笑的是我們卻要趕超印度?。?,無論Microsoft、Borland如何爭(zhēng)斗,無論他們誰統(tǒng)治誰,他們不影響美國(guó)的強(qiáng)大,朋友們,學(xué)習(xí)Microsoft,開發(fā)出讓國(guó)人感到牛的軟件!  
       這個(gè)帖子出乎本人的意料,愿意與大家共勉,希望這個(gè)帖子常在,與大家敞開心扉的交流!

 

FireFox與Microsoft  
       FireFox在一片贊揚(yáng)、歡呼聲中激情登場(chǎng)了,也許人們真的期待已久,平靜的水面終于被扔進(jìn)一塊石頭。我是IE的最早期的用戶了,1996年首次Microsoft的TED(技術(shù)教育大會(huì)),IE4還沒有發(fā)布時(shí)候,我們有機(jī)會(huì)目睹了內(nèi)部版本的IE4(當(dāng)時(shí)內(nèi)部名稱是:納什維爾,英文名稱忘記了),那真是一次令人激動(dòng)的預(yù)覽,當(dāng)時(shí)IE3與Navigator  3激戰(zhàn)正酣。當(dāng)你第一次看到想象中的“Active  Desktop”,如果你沒有身臨其境,你不會(huì)激動(dòng)。IE4本質(zhì)上是一個(gè)Shell,其SDK是免費(fèi)的,Navigator是基于Mozilla的瀏覽器,雖然是開源的,由于要照顧更大的共性(與操作系統(tǒng)無關(guān)),因此Mozilla不能充分的利用Windows的優(yōu)勢(shì),Mozilla不能為廣大的程序員帶來所謂開發(fā)人員的“快感”,頂尖程序員可以駕馭Mozilla,以實(shí)現(xiàn)技術(shù)深度帶來的樂趣,最早的Navigator同時(shí)提供17個(gè)版本(注意:不是17種自然語言,而是17種操作系統(tǒng)),從數(shù)學(xué)角度分析,Mozilla就像一組公理,你可以以此為基礎(chǔ)開發(fā)不同操作系統(tǒng)上的瀏覽器,Navigator就是基于Mozilla的一個(gè)漂亮的結(jié)果,你能欣賞到代碼結(jié)構(gòu)的優(yōu)美,然而失去的卻是功能強(qiáng)大的個(gè)性(要知道,Windows用戶在數(shù)量上遠(yuǎn)大于其他操作系統(tǒng)用戶的總和)。普通用戶不可能讀懂Mozilla的代碼,即使懂了也不能很好的運(yùn)用,這也許是Mozilla(以及大多數(shù)開源代碼)失敗的致命原因之一。IE內(nèi)核聰明的抓住了開發(fā)者,你想想:對(duì)數(shù)以萬計(jì)的中、初級(jí)開發(fā)者而言,容易駕馭是首選的選擇,也是明智的。我讀過Mozilla,但我不會(huì)在開發(fā)過程中為一個(gè)具體的項(xiàng)目應(yīng)用它。只要是瀏覽器,就不可能絕對(duì)的安全,無論是Mozilla,還是IE。當(dāng)我了解到FireFox是基于Mozilla的一個(gè)新的瀏覽器,我基本上對(duì)其失去了信心,我有一個(gè)奇怪的觀點(diǎn):FireFox的推出,最大的受益者絕對(duì)是Microsoft,即使Microsoft失去20%的份額,但是會(huì)導(dǎo)致Microsoft強(qiáng)化IE,Microsoft正不知道如何促使IE進(jìn)化的時(shí)候,F(xiàn)ireFox的出現(xiàn)無疑為Microsoft提供了機(jī)會(huì),物種進(jìn)化的原則就是競(jìng)爭(zhēng),F(xiàn)ireFox就是促進(jìn)IE進(jìn)一步強(qiáng)大的催化劑。FireFox的擴(kuò)展機(jī)制的確十分靈活,如果對(duì)手不是Microsoft,就很難掀起波瀾,而且當(dāng)高級(jí)的開發(fā)者逐漸了解FireFox的時(shí)候,F(xiàn)ireFox的漏洞就會(huì)漸漸暴露,試想想,如果某種Linux取代了Windows,那么,它的漏洞也會(huì)與Windows一樣多,因?yàn)槟莻€(gè)時(shí)候,會(huì)有與研究Windows漏洞一樣多的人去研究對(duì)應(yīng)得Linux的漏洞!從個(gè)人的角度上看,Microsoft也許有點(diǎn)“冤”,因?yàn)楦Q視Microsoft弱點(diǎn)的人實(shí)在太多了。從理論上看,計(jì)算機(jī)安全性是個(gè)永遠(yuǎn)的話題,就像任何社會(huì)都需要警察一樣,沒有了小偷、賊、犯罪,警察也就消失了,你想想,文明是什么?野蠻能消失嗎?野蠻消失了,文明也就不存在了,高度文明就是更不存在了。人類克服了癌癥,下一個(gè)疾病會(huì)比癌癥更致命,但這并不意味著不必克服了癌癥,進(jìn)步真是一種挑戰(zhàn)……  
       IE的技術(shù)構(gòu)思肯定是個(gè)卓越的構(gòu)思,IE可擴(kuò)展的機(jī)制,會(huì)給Windows開發(fā)者帶來許許多多的益處。我正在計(jì)劃一片文章,介紹如何將你的對(duì)象模型與MSHTML庫實(shí)現(xiàn)對(duì)接,這樣,在HTML文件中可以將你的指令系統(tǒng)與HTML對(duì)象模型融合在一起。  

 

話說“Hook”  
       在CSDN上時(shí)??吹疥P(guān)于“hook”,的問題,令我想起另一個(gè)話題,那就是游戲“外掛”。Hook提供一種改變一個(gè)Windows窗口消息處理的一種手段,通常的開發(fā)根本用不到,因此,談不上“常用”,早期的Windows,由于不能很好的支持遠(yuǎn)東(當(dāng)然包含漢字)地區(qū)的文字,因此出現(xiàn)了許多外掛的軟件補(bǔ)充Windows的不足,中文之星是一個(gè)典型的、令國(guó)人自豪的軟件,監(jiān)控軟件也許要運(yùn)用hook技術(shù),此外,很難想象什么軟件會(huì)用到hook。有人問我,能不能改變一個(gè)進(jìn)程的數(shù)據(jù)處理行為,我曾經(jīng)告訴他:能,也不能!感覺告訴我,hook絕大多數(shù)場(chǎng)合下是一種“不禮貌”的行為。曾有一段時(shí)間,我的服務(wù)器,經(jīng)常有人悄悄地近來,給我增加許多超級(jí)用戶,肆意修改我的管理權(quán)限,我找到托管商,解決了這個(gè)問題,那時(shí),我也買了幾本服務(wù)器監(jiān)聽、安全方面的書,看了幾天,我就放棄了,為什么?擔(dān)心學(xué)壞(正、邪僅在一念之差),其實(shí),每個(gè)服務(wù)器都很脆弱,對(duì)有經(jīng)驗(yàn)的系統(tǒng)程序員而言,安全性與道德準(zhǔn)則是聯(lián)系在一起的,軟件技術(shù)上走邪路很容易,有時(shí)我會(huì)想,如果我去設(shè)計(jì)病毒或者當(dāng)黑客,會(huì)怎樣?基礎(chǔ)數(shù)學(xué)出身的我,數(shù)論、組合學(xué)、密碼理論統(tǒng)統(tǒng)不是問題,Windows虛擬驅(qū)動(dòng)程序開發(fā),也不是問題!為什么那么多的人關(guān)心hook?國(guó)人的正道軟件寥寥無幾,可破解術(shù)卻出神入化,可惜,可惜!hook是一種底層的編成機(jī)制,能理解好hook的人,完全具備掌握一流技術(shù)的底蘊(yùn),真希望回頭……  

 

MFC的批判  
       記得梁羽生先生筆下有一位正邪兼修的高手,名曰“喬北溟”(好像是這個(gè)名字),一次此人與大俠張丹楓在一個(gè)廟中相遇,喬北溟隨手操起香案上的香爐,張丹楓問他:“你的家伙稱手嗎?”  ,喬北溟笑答:“以吾輩之見識(shí),還在意手中之物是否為劍?”,張丹楓一愣,心中暗念,此人果然不同凡響……  
       說起MFC,許多人都會(huì)撇撇嘴,高手們會(huì)對(duì)其提出許多尖銳的批評(píng),例如,刻板的Document-View機(jī)制,繁復(fù)的框架結(jié)構(gòu),怪異的COM實(shí)現(xiàn)以及令人莫名其妙的宏,等等。MFC的大而全,不僅捆住了MFC開發(fā)組的手腳,也為全面掌握MFC的愿望設(shè)置了障礙。高手們批評(píng)之余,可能忽略了一個(gè)基本的事實(shí),這個(gè)事實(shí)就是,你的批評(píng)來自于你對(duì)MFC的深入理解,當(dāng)許多人指出MFC的種種弱點(diǎn)時(shí),他們或許不愿意承認(rèn):他們的技高一籌、見識(shí)超人一等是MFC帶來的,不止一次有人與我談及:“MFC的COM實(shí)現(xiàn),實(shí)在差勁,看看ATL(不容否認(rèn),ATL至今仍然是開發(fā)COM的最佳C++類庫),你就會(huì)感覺MFC的臃腫……”,我們中的許多人潛意識(shí)里不知不覺的在作一件事:“當(dāng)我們借助一部梯子登上一層樓的時(shí)候,我們會(huì)評(píng)價(jià)這個(gè)梯子是如何如何之糟糕?!?999年,我的一個(gè)項(xiàng)目中需要一個(gè)描述引擎,VBS(Visual  Basic  Script),是個(gè)免費(fèi)的語言引擎,但功能局限極大,我聯(lián)系了美國(guó)的Summit公司,他們很快寄來了Microsoft的Visual  Basic  for  Application  SDK  6.0,當(dāng)時(shí)我的團(tuán)隊(duì)可謂很強(qiáng),其中的幾位研究生C++修養(yǎng)很好,拿到VBA  SDK時(shí),他們對(duì)我說:“應(yīng)當(dāng)沒問題,我們很快就會(huì)搞定VBA  SDK”,可是幾天過去了,連個(gè)例子都沒出來,原來,雖然VBA  SDK提供了MFC擴(kuò)展類庫(基于模版機(jī)制的MFC/ATL合成類庫),可實(shí)現(xiàn)得極其別扭,我接手后的當(dāng)天晚上,VBA  的IDE就集成到系統(tǒng)中,第二天可編程對(duì)象順利出現(xiàn)在VBA  的IDE中,其余人覺得很奇怪,一看代碼,原來我繞過Microsoft的例子,完全是另外的實(shí)現(xiàn)途徑,那個(gè)時(shí)候,我感覺到,Microsoft這個(gè)家伙真的可惡,本來清晰的集成途徑,卻人為的讓你繞來繞去增加技術(shù)難度,過后想想,也可以理解,不這樣,第三方的Summit何以作技術(shù)支持?我經(jīng)常想,如果沒有商業(yè)利益,許多技術(shù)應(yīng)當(dāng)十分簡(jiǎn)潔、高效,這一點(diǎn),Microsoft以及其他大公司都十分明白,如果一切都是最佳的實(shí)現(xiàn)模式,可能就另外一種局面了,復(fù)變函數(shù)論中有一個(gè)著名的定理:“復(fù)平面上處處解析的函數(shù)一定是常值函數(shù)?!保?nbsp; 學(xué)生們很難理解,當(dāng)時(shí)我說,如果把一個(gè)省幾十個(gè)縣的最好學(xué)生組成一個(gè)班會(huì)怎樣?結(jié)果是一定有一個(gè)較差的學(xué)生(除非這個(gè)班只有一個(gè)學(xué)生?。?,這是個(gè)無法抗拒的定則,你想想,用天下最好的20個(gè)菜形成的酒席是什么味道?那一定是最差的!  
       Microsoft的MFC是值得你學(xué)習(xí)和使用的,如果你討厭這個(gè)東西或者你認(rèn)為這是個(gè)邪惡的東西,你學(xué)學(xué)喬北溟,實(shí)現(xiàn)正邪歸一……  

 

有感于“雞兔同籠”  
       小女初到北京時(shí),對(duì)北京的教育頗為不適,鋪天蓋地的數(shù)學(xué)奧賽培訓(xùn)班向她壓過來,孩子真是辛苦。她四年級(jí)時(shí),就的對(duì)初等數(shù)論的基本內(nèi)容進(jìn)行強(qiáng)迫性的熟悉,還好,經(jīng)過一段時(shí)間的努力,掌握了“雞兔同籠”、“韓信點(diǎn)兵”等中國(guó)經(jīng)典,馬馬虎虎的能證明費(fèi)馬小定理,有一天,她問我:“爸爸,大學(xué)數(shù)學(xué)什么樣?還有‘雞兔同籠’嗎?”,我說,有,我特意找了本老外寫的《Basic  Algebra》,找到其中的“中國(guó)剩余定理”,小孩子接著問道:“這本書中還有中國(guó)人的數(shù)學(xué)內(nèi)容嗎?”,我在習(xí)題中給她找到華羅庚老先生的“反同構(gòu)定理”,小孩子又接著問:“還有嗎?”,我感到很沒面子,因?yàn)檎娴恼也坏搅恕?nbsp; 
       曾經(jīng)的一個(gè)夢(mèng),就是當(dāng)一個(gè)數(shù)學(xué)家!為此,研究生時(shí)期買了大量的數(shù)學(xué)書,當(dāng)時(shí)我們系的資料室是聯(lián)合國(guó)教科文組織的藏書室,可以說,里面就是一個(gè)裝滿武功秘籍的寶庫。有一天我們打掃資料室的一個(gè)倉庫,倉庫里全是鼓鼓囊囊的麻袋包,上面落滿灰塵,手觸摸一下,能粘出幾毫米厚的灰塵,可以想象有幾年沒有打掃了。同學(xué)無意中揭開一個(gè)麻袋,我們驚呆了,里面是美國(guó)60年代各大學(xué)的數(shù)學(xué)雜志,每個(gè)雜志的名字都是響當(dāng)當(dāng)?shù)?,那真叫浩如煙海!?dāng)時(shí)我們就想,我們的論文能發(fā)表到其中嗎?如果僥幸發(fā)了幾篇,可想而知,我們就可以當(dāng)博導(dǎo)了,這些比國(guó)內(nèi)所謂核心期刊有分量得多的雜志,就像CSDN上的帖子一樣,很快就會(huì)被淹沒了,也許很久都不會(huì)有人參考、訪問……,有一天,我也當(dāng)了老師,面臨著種種考核,于是,我們就成了論文機(jī)器,不論是否有價(jià)值,只要是核心的,你就高人一等。那個(gè)時(shí)候,我經(jīng)常想起那些麻袋里的文獻(xiàn)……  
       我們整體水平的落后,導(dǎo)致整體的浮躁,數(shù)量上上去了,質(zhì)量卻下來了。若干年后,也許我成熟了,我們這些曾經(jīng)站在大學(xué)講壇上的人,沒什么好的東西講(談不上  ‘教’)給年輕的學(xué)生,記得當(dāng)年我校的計(jì)算中心計(jì)劃招個(gè)培訓(xùn)班,幾天過去,僅有7人報(bào)名,第8人來時(shí),前7人就退了3人,主任感到奇怪,問學(xué)生,學(xué)生不語,其中原委并不復(fù)雜。我發(fā)此帖并沒有精心策劃,的確如某些網(wǎng)友所言是隨感而發(fā),“雞兔同籠”、“勾股定理”已經(jīng)有了歷史地位,如果僅僅夠用,我們住草房子一樣保暖,為何建大廈呢?為什么放棄傳統(tǒng)的長(zhǎng)袍、馬褂而去穿西裝革履?病毒軟件大戰(zhàn)幾乎是自殺性的內(nèi)戰(zhàn),沒有撼動(dòng)國(guó)外產(chǎn)品的分毫,我們?cè)S多人喜歡對(duì)自己人說三道四,是不是很少想一致對(duì)外?人家賣我們打折的產(chǎn)品,條件是附加一份“懺悔書”,而執(zhí)行者卻是我們國(guó)人,為什么?因?yàn)槲覀兊臇|西匱乏!當(dāng)年別人用鋼鐵武器掠奪了我們的財(cái)富,他們強(qiáng)大了,地痞無賴換上了紳士面孔,講起了法律,當(dāng)你用D版時(shí),人家文明的指責(zé)你,你的人力、財(cái)力、物力統(tǒng)統(tǒng)為人所用,取之于你用之于你,而我們卻依然陶醉在“雞兔同籠”、“勾股定理”的歷史成就之中,我們依然喜歡爭(zhēng)論“勾股定理”誰發(fā)現(xiàn)得更早,π是誰最先精確計(jì)算的,就像談?wù)揅++誰的水平更高一樣。

后記:

 

為感謝CSDN網(wǎng)友的支持,本人擬定陸續(xù)增加幾個(gè)新的帖子:  
一、十年MFC經(jīng)歷認(rèn)識(shí)的Microsoft開發(fā)技術(shù)-多文檔界面開發(fā)技術(shù):此貼討論一類多文檔界面,主窗口是一個(gè)單文檔界面,如果你愿意,你可以將多文檔窗口作為主窗口的一個(gè)視圖(CView)顯示,這類多文檔界面支持無限多個(gè)文檔類型(即可以加載任意多個(gè)文檔模板),支持(基于COM、.NET)二次開發(fā)技術(shù)以及VBA集成;  
二、十年MFC經(jīng)歷認(rèn)識(shí)的Microsoft開發(fā)技術(shù)-可視化文檔界面設(shè)計(jì)技術(shù):此貼討論MFC  Document/View  機(jī)制的可視化實(shí)現(xiàn),將給出一種所見即所得的Document/View  設(shè)計(jì)機(jī)制;其中包含如何集成ActiveX  Ctrl、.NET  User  Control、MFC  CView類對(duì)象以形成一個(gè)MFC窗體;  
三、在MFC程序中如何有效的使用HTML、flash,例如,可以實(shí)現(xiàn)flash動(dòng)畫作為一個(gè)程序的Splash以增強(qiáng)程序的感染力,使用HTML、flash動(dòng)畫作為MDI程序的MDI用戶區(qū)的背景等等……;  
四、十年MFC經(jīng)歷認(rèn)識(shí)的Microsoft開發(fā)技術(shù)-MFC  .NET組件開發(fā)技術(shù):介紹如何使用MFC類庫開發(fā).NET組件,例如可以用MFC開發(fā)WinForm對(duì)象,然后用于VB.NET、C#等等。  
 
如果大家有好的建議,請(qǐng)與我聯(lián)系(sunhui@mail.apptemplate.com、sunhuizlz@yeah.net),如果有北京的朋友肯幫忙協(xié)助,在下不勝感激,希望得到大家的支持!

  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多