日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC 四大天王

發(fā)布時間:2024/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC 四大天王 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)於 MFC 這一主題,在「滄海書訊」版上曾經(jīng)被討論過的書籍有四本,正是我所列出的這四大天王。看來我心目中的好書頗能吻合市場的反應(yīng)。

---------------------------------------------------------------
我還記得,無責(zé)任書評是在四年前(1993)開春時和大家第一次見面。雖然不是每個月都出貨,但斷斷續(xù)續(xù)總保持著訊息。在明確宣布的情況下這個專欄曾經(jīng)停過兩次,第一次停了叁個月,於 1994 年開春復(fù)工;第二次停了十五個月,於 1997 年開春的今天,重新與各位說哈羅。

休息整整一個年頭又叁個月,寫作上的疲倦固然是因素之一,另外也是因為這個專欄直接間接引起的讓人意興闌珊的俗人俗務(wù)。讀者寫信來說,『總把無責(zé)任書評當(dāng)成休閑散文看。或許您可以考慮寫些休閑小品,定會暢銷』,是呀,我正構(gòu)思把因這個專欄而獲得的人生經(jīng)驗寫成一本「現(xiàn)形記」。可是不知道手上「正當(dāng)」工作什麼時間才能告一段落,寫起我的小說。也不知道什麼樣的出版社有興趣侯捷寫的小說。

倦勤與無奈過去了,滿腔讀書心得沛然欲發(fā)。所以,我又拿起筆「無責(zé)任」了。感覺有點(diǎn)陌生,但是回顧讀者們這一年寫來的上百封信,讓我意氣昂揚(yáng)。這個月我談的是 Visual C++ 與 MFC。此題目我已提過兩次。一來它十分重要,演化的過程也十分快速而明顯,二來這個領(lǐng)域又有一些重量級書籍出現(xiàn),所以我必須再談一次。

另外,我還是得再強(qiáng)調(diào),侯捷的專長領(lǐng)域有限,離我火力太遠(yuǎn)的書我只能遠(yuǎn)觀不敢近玩。這個專欄用在拋磚引玉,讓談書成為一種風(fēng)氣。Windows Developer's Journal(WDJ)的 Books in Brief 專欄原先也是主持人 Ron Burk 唱獨(dú)角戲,後來(現(xiàn)在)就有了許多讀者的互動。我也希望這樣的事情在這里發(fā)生。

必也正名乎

常在 BBS 的程式設(shè)計相關(guān)版面上看到,許多人把 Visual C++ 和 C++混淆不清,另則是把 Visual C++ 和 MFC 混為一談,實在有必要做個 清。C++ 是語言,Visual C++ 是產(chǎn)品。『我們學(xué)校開了一門 Visual C++ 的課程』這種說法就有點(diǎn)奇怪,實際意義是『我們學(xué)校開了一門 C++ 課程,以 Visual C++ 為軟體開發(fā)環(huán)境』。『我會寫 Visual C++ 程式』這種說法也很怪,因為Visual C++ 是 C/C++ 編譯器,你可以在這套整合開發(fā)環(huán)境中使用 C 語言或 C++ 語言寫出 DOS 程式或 Windows 程式;如果是 Windows 程式,還可以分為 Windows API programming 或MFC programming。所以「我會寫 Visual C++ 程式」表達(dá)不出你真正的程度和意思。

Visual C++ 是一套 C/C++ 編譯器產(chǎn)品,內(nèi)含一套整合開發(fā)環(huán)境(Integrated Development Environment,IDE),也就是 AppWizard、ClassWizard、編譯器、聯(lián)結(jié)器、資源編輯器等工具的大集合。你知道,真正的 C++ 程式(而不是披著 C++ 外衣的C 程式)是以一個個類別(class)堆砌起來的,為了節(jié)省程式員的負(fù)擔(dān),幾乎每一家編譯器廠商都會提供一套現(xiàn)成的類別庫(class libraries),讓程式員站在這個基礎(chǔ)開發(fā)應(yīng)用軟體。MFC 就是這樣一套類別庫。如果以物件導(dǎo)向的嚴(yán)格眼光來看,MFC 是比類別庫更高一級的所謂 application framework。PC 上另兩套與 MFC 同等地位的產(chǎn)品是 Borland 的 OWL 和IBM 的 OpenClass,前者搭配的開發(fā)環(huán)境是 Borland C++,後者搭配的是 VisualAge C++。其他的 C++ 編譯器大廠如Watcom 和 Symantec 和 Metaware,并沒有開發(fā)自己的類別庫,他們向微軟取得 MFC 的使用授權(quán),提供 MFC 的原始碼、含入檔、相容的編譯器和聯(lián)結(jié)器。噢是的,他們要求授權(quán)的對象是 MFC,而不是 OWL,這就多少說明了 MFC 和 OWL 的市場占有率。

-----------------------------------------------------
產(chǎn)品名稱 廠商 application framework
-----------------------------------------------------
Visual C++ Microsoft MFC
Borland C++ Borland OWL(最新版據(jù)說也提供 MFC)
VisualAge C++ IBM OpenClass
Symantec C++ Symantec MFC
-----------------------------------------------------

●滄海書訊

清大 BBS 站臺(楓橋驛站,IP 位址為 140.114.87.5),在「分類討論區(qū)」的「電腦與資訊」區(qū)之下,有一個「滄海書訊」版,對電腦書籍有興趣的朋友可以去看看。這里并沒有(還沒有)類似正規(guī)書評之類的文章出現(xiàn),比較多的是讀者們對於坊間書籍的閱後感,以及新鮮讀者的求助函(找某一主題的好書啦、誰要賣書啦、誰要買書啦等等)。

關(guān)於 MFC 這一主題,在滄海書訊版上曾經(jīng)被討論過的書籍有四本,正是我所列出的這四大天王。看來我心目中的好書頗能吻合市場反應(yīng)。這四本書各有特點(diǎn),色彩鮮明,統(tǒng)統(tǒng)值得收藏。

●四大天王

一本書能夠有被收藏的價值,可不簡單唷,我不能亂說嘴。諸君,看看我列的理由吧。這四大天王是:

Inside Visual C++ 4.0

在四大天王中本書名列老大哥,我這麼排名和天王的「色藝」無關(guān),敬老尊賢的成份多一些。它已是同一本書的第叁版,所以才會在書名冠上軟體版本號碼(上一版名為 Inside Visual C++ 1.5)。書名冠上軟體版本號碼的另一個因素是,本書在教導(dǎo)我們開發(fā)程式時,是 "tool-oriented"(以工具為導(dǎo)向),你會看到像「先按下這個鈕,然後填寫這一小段碼,然後在清單中選擇這一項,再回到右邊的視窗上...」這樣的文字說明,所以 Visual C++ 的版本更迭攸關(guān)全書內(nèi)容。

這就引出了本書在程式誘導(dǎo)方面的一個特徵:工具的使用占了相當(dāng)吃重的角色。工具的使用難度不高,但非常繁多(從 Visual C++新鮮人的眼光看可能是...呃...非常雜亂)。又要學(xué)習(xí) MFC,又要配合工具的使用,對初學(xué)者而言是雙倍負(fù)擔(dān)。我曾經(jīng)在 BBS 上看到一封信,抱怨 Inside Visual C++ 雖是名著,他卻完全看不懂。呵,我完全能夠了解 -- 我不是那種自己懂了之後就忘記痛苦的人。

入選原因:老字號,范例程式內(nèi)容豐富,220 頁的 OLE 和 110 頁的 Database 是本地唯有的大獨(dú)家,別處找不到。

Programming Windows 95 with MFC

Ray Duncan(侯捷極為尊敬的一位老牌作家,近年似乎淡出,沒有什麼新作品)曾經(jīng)說,這本書是 "the Petzold for MFC programming",儼然有 Petzold(注)接班人之勢。從其主題的安排,甚至從書籍封面的安排,在在顯示「接班人」的訊息。而它的內(nèi)容可以證明Ray Duncan 的推薦并不虛佞。

---------------------------------------------------------------
注:Charles Petzold 是 "Programming Windows 95" 一書的作者。該書是SDK 程式設(shè)計寶典。這本書近來沒有那麼轟動以及人手一冊了,因為 MFC 或 OWL 這類 framework 產(chǎn)品不斷精進(jìn),Delphi、C++Builder這類快速程式開發(fā)工具(Rapid Application Development,RAD)不斷進(jìn)逼,SDK 程式設(shè)計的角色有點(diǎn)像組合語言了。不過我告訴你,學(xué)會它,絕對讓你層次不同 -- 不只在程式設(shè)計的層次,還在對作業(yè)系統(tǒng)的了解層次。
---------------------------------------------------------------

這本書在程式設(shè)計的誘導(dǎo)方面,與 Inside Visual C++ 一書有極大的作法差異。本書沒有任何一個程式以 Wizards 完成(我想作者必然曾經(jīng)借重工具,只是最後再清理一遍),所以你不會看到像 //{{ 和 }}// 這樣的奇怪符號,以及一堆 #ifdef、#undef、#endif。「程式碼是我們自己一行一行寫出來」的這種印象,可能對於消除初學(xué)者的焦灼有點(diǎn)幫助。

入選原因:文字簡易,觀念清楚。從章節(jié)目錄上你看不到非常特殊的主題,但隱含在各個小節(jié)之中有不少珠玉之言。平實穩(wěn)健。對 MFC 核心觀念如 Document/View、Message Map 的討論雖然淺嘗即止,但表現(xiàn)不俗。

MFC Internals

這是四大天王之中唯一不以教導(dǎo) MFC 程式設(shè)計為目的的書。它的目的是挖掘 MFC 的黑箱作業(yè)內(nèi)容,從而讓讀者對application framework 有透徹的認(rèn)識。這樣的認(rèn)識對於 MFC 的應(yīng)用面其實也是有幫助的,而且不小。

這本書挖掘 MFC 的原始碼至深至多,最後還在附錄A列出MFC 原始碼的搜尋導(dǎo)引。由於解釋 MFC 的內(nèi)部運(yùn)作原理,少不得就有一長串的「誰呼叫誰,誰又呼叫誰」的敘述。這種敘述是安眠藥的最佳藥引,所幸作者大多能夠適時地補(bǔ)上一張流程圖,對於讀者的意識恢復(fù)有莫大幫助。

入選原因:獨(dú)特而唯一。雖然并非初學(xué)者乃至中級程度者所能一窺堂奧,卻是所有資深的 MFC 程式員應(yīng)該嘗試讀一讀的書籍。

Dissecting MFC

這本書是應(yīng)用面(各種 MFC classes 之應(yīng)用)和核心面(隱藏在 MFC 內(nèi)的各種奇妙機(jī)制)的巧妙混合。前一半篇幅為讀者扎基礎(chǔ),包括 Win32、C++、MFC 程式的基礎(chǔ)技術(shù)環(huán)節(jié)。後一半篇幅以著名的 Scribble 程式(隨附於 Visual C++ 之中)為例,從應(yīng)用面出發(fā),卻以深掘原理的核心技術(shù)面收場。看不到豐富絢麗的各種應(yīng)用技巧,著重在厚植讀者對於 MFC 核心技術(shù)的基礎(chǔ)。

入選原因:本書挖掘的 Runtime Class、Dynamic Creation、Message Mapping、Command Routing、Persistence 等主題,解說詳實圖片精采,擁有世界級水準(zhǔn)。SDK 程式員如果想進(jìn)入 MFC 領(lǐng)域,這本書是最佳選擇。看過 Inside Visual C++ 和 Programming Windows 95 with MFC的讀者,這本書會讓你更上層樓,「知其然并知其所以然」。

Inside Visual C++ 4.0

---------------------------------------------------------------
作者:David J. Kruglinski
出版公司:Microsoft Press
出版日期:1996 年初
頁數(shù):29 章,896 頁
售價:US$ 45.00。含光碟一片。


PartI:Windows、Visual C++、and Application Framework Foundamentals
1. Microsoft Windows and Visual C++
2. The MFC Application Framework

PartII:The MFC Library View Class
3. Getting Started wwwith AppWizard - Hello World!
4. Basic Event Handling, Mapping Modes, and a Scrolling View
5. The Graphics Device Interface (GDI), Colors, and Fonts
6. The Modal Dialog and Windows 95 Common Controls
7. The Modeless Dialog and Windows 95 Common Dialogs
8. Using OLE Controls (OCXs)
9. Win32 Memory Management
10. Bitmaps
11. Windows Message Processing and Multithreaded Programming

PartIII:The Document-View Architecture
12. Menus, Keyborad Accelerators, the Rich Edit Control, and Property Sheets
13. Toolbars and Status Bars
14. A Reusable Frame Window Base Class
15. Separating the Document from Its View
16. Reading and Writing Documents - SDI
17. Reading and Writing Documents - MDI
18. Printing and Print Preview
19. Splitter Windows and Multiple Views
20. Context-Senssitive Help
21. Dynamic LInk Libraries (DLLs)
22. MFC Programs Without Document or View Classes

PartIV:OLE
23. The OLE Component Object Model (COM)
24. OLE Automation
25. OLE Uniform Data Transfer - Clipboard Transfer and Drag and Drop
26. OLE Structure Storage
27. OLE Embedded Servers and Containers

PartIV:Database Management
28. Database Management with Microsoft ODBC
29. Database Management with Microsoft Data Access Object (DAO)
Appendix A: A Crash Course in the C++ Language
Appendix B: Message Map Functions in MFC
Appendix C: MFC Library Runtime Class Identification and Dynamic Object Creation
---------------------------------------------------------------
自從 application framework 興起,在 raw API 程式設(shè)計之外,Windows 程式員又找到了一條新的途徑。MFC「系出名門,血統(tǒng)純正」,比之其他的 application framework 產(chǎn)品自然是聲勢浩大,MFC 書籍也就因此比其他同等級產(chǎn)品的書籍來得多得多。

群雄并起之勢維持沒有太久,真正的好東西很快就頭角崢嶸了。Inside Visual C++ 是最早出線的一本。此書至今已是第叁版,前兩版分別針對 MFC 2.0(Visual C++ 1.0)和 MFC 2.5(Visual C++ 1.5)撰寫。已有評論把此書與 Programming Windows并提,稱之為 MFC/C++ 中的 Petzold 書籍(聽起來猶如表界中的勞斯萊斯,車界中的勞力士)。Kruglinski 本人為了卡住這個尊崇的位置,甚至「於數(shù)年前的一個冬天,有著風(fēng)雪的傍晚,冒險進(jìn)入紐約的 East Village,拜訪 Windows 大師 Charles Petzold,問他關(guān)於撰寫 Programming Windows 的想法...」(語見本書之 Introduction 部份)。

Kruglinski 毫不隱藏他對 MFC 的熱愛,他說這是他等了十年才盼到的軟體開發(fā)環(huán)境。十年有點(diǎn)跨張,PC 的歷史才多久?但 MFC 與 Visual C++ 整合環(huán)境之功能強(qiáng)大卻是不假。這本書劃分為四大篇。第一篇介紹 application framework 的觀念以及 Visual C++ 整合環(huán)境的各個工具元件。第二篇真正進(jìn)入MFC 程式設(shè)計,不能免俗地從 "Hello World" 開始,焦點(diǎn)放在視窗顯示身上(也就是 CView 的運(yùn)用)。作者嘗試以 C++ 和 MFC完成一些功能簡單的程式,像是簡易繪圖、圖形卷動、字形輸出、通用對話盒與通用控制元件、OCX 之使用等等。

第叁篇才真正進(jìn)入 MFC 的核心,也就是 Document-View 架構(gòu),這也是所謂 application framework 的最大特質(zhì)。當(dāng)你學(xué)會如何使用 Document 并且把它和 View 連接起來後,你會驚訝資料的檔案動作和印表動作(包括預(yù)視功能)是多麼容易加入。這一篇的章節(jié)包括漂亮迷人的 UI 元件如工具列、狀態(tài)列、分裂視窗、求助系統(tǒng)、屬性對話盒,以及 SDI、MDI、列印、預(yù)視、動態(tài)聯(lián)結(jié)函式庫等主題。

第四篇的五章談的全部都是 OLE。不像一般書籍對於 OLE 蜻蜓點(diǎn)水,這一篇是道道地地的硬扎貨色,范圍包括COM(Component Object Model)、OLE Automation、Uniform Data Transfer、Structured Storage、Embedded Servers and Containers。

第五篇談的全部是資料庫管理。一章談 ODBC(Open Database Connectivity),另一章談 DAO(Data Access Objects)。

網(wǎng)路上一位讀者抱怨說,本書雖是名著,他卻完全看不懂。呵啊,一切都在意料之內(nèi)。作者一開始就顧著給我們完全正規(guī)的作法,用 AppWizard 產(chǎn)生程式碼,用 ClassWizard改寫虛擬函式、攔截訊息并撰寫訊息處理常式。剛開始學(xué)習(xí)Windows 程式設(shè)計的人,甚至已經(jīng)有 SDK 經(jīng)驗但沒有物件導(dǎo)向經(jīng)驗的人,根本昏頭轉(zhuǎn)向摸不著頭緒。是的,學(xué)習(xí)MFC(或其他 Application Framework),先得有許多基礎(chǔ)。包括 C++ 語言基礎(chǔ)、Windows 作業(yè)系統(tǒng)基礎(chǔ)、物件導(dǎo)向程式觀念的基礎(chǔ)。

最新消息:本書第五版已有預(yù)告,書目上寫的出版日期是97 年叁月。以我對 Microsoft Press 出書進(jìn)度的了解,屆時可能咱們還需再等一等。新書內(nèi)容并非針對 Visual C++ 5.0,仍是以 MFC 4.x 為架構(gòu)核心,但加了不少網(wǎng)路技術(shù),如Basic TCP/IP、Winsock programming for clients and servers、MFC WinInet、DocObjects and ActiveX controls 等主題。

Programming Windows 95 with MFC

---------------------------------------------------------------
作者:Jeff Prosise
出版公司:Microsoft Press
出版日期:1996 第二季
頁數(shù):14 章,998 頁
售價:US$ 49.95。含光碟一片。

PartI:MFC Basics
1. Hello, MFC
2. Drawing in a Window
3. The Mouse and the Keyboard
4. Menus
5. Controls
6. Dialog Boxes and Property Sheets
7. Timers and Idle Processing
PartII:The Document/View Architecture
8. Documents, Views, and Single Document Interface
9. Multiple Documents and Multiple Views
10. Printing and Print Previewing
11. Toolbars, Status Bars, and Versionable Schemas
PartIII:Advanced Topics
12. Bitmaps, Palettes, and Regions
13. The Common Controls
14. Threads and Thread Synchronization
---------------------------------------------------------------
每一位 MFC 書籍作者,最大的夢想就是其作品被譽(yù)為「C++ 中的Petzold 書籍」。有人親訪 Petzold,有人則搬出老天王來說幾句話。老天王 Ray Duncan 這麼說: "Jeff Prosise has written the definitive introduction to Widnows software development in the era of 32 bits and application frameworks. This book is the Petzold for MFC programming"。這段話被當(dāng)作本書的廣告主打詞。有趣的是,盡管萬方爭取,Petzold 本人倒是從來沒有說過什麼話。也許他想說的是『我自己來寫本 MFC 經(jīng)典』,呵呵。

本書有沒有接班人的能耐呢?有!和 Inside Visual C++ 比較,本書在低階部份照顧得多些,程式細(xì)節(jié)則非常完備。別誤會,我的意思并非說它是那種「把五句話可以說清楚的一段文字,以十句話來表達(dá)」的書籍(注),我是說它把各個技術(shù)主題挖得很深入,旁徵博引的功夫很好

總結(jié)

以上是生活随笔為你收集整理的MFC 四大天王的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。