程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 『VC++技術內幕』學習筆記(1)

『VC++技術內幕』學習筆記(1)

編輯:VC++

 

寫在前面:

    我看的『VC++技術內幕』版本為--潘愛民和王國印譯清華大學出版的第四版,因從網上看到此版譯的最好。

    這篇學習筆記是後補的,因為這本書我已經看到了第三十二章,之前並沒有做筆記,只是隨意的在書上畫了畫重點,可是越向後學越覺得前面的知識並沒有掌握,所以決定重新來過並補上筆記。我認為只有踏踏實實的記錄下每天的學習心得才能真正的有所收獲。我個人認為學習這本經典之前最好先看看WINDOWS 32位編程的書,至少能用純SDK寫出一些小程序。

第一天:

    WINDOWS應用程序一定要有WinMain函數,該函數用來完成一些特殊的任務,象創建程序的主窗口,主窗口用來處理消息的代碼。MFC將WinMain隱藏在框架中,不象寫SDK程序時可以很容易的找到它。

    WINDOWS采用的消息處理機制也交給了程序框架,我們不必擔心如何使這些消息和代碼聯系起來。並且WINDOWS定義好了一些消息,當窗口被創建時系統就會發送WM_CREATE消息,當點擊鼠標左鍵時便系統會發送WM_LBUTTONDOWN消息,當用戶按下鍵盤時系統會發送WM_CHAR消息,當用戶關閉窗口時系統會發送WM_CLOSE消息,當用戶進行菜單項選擇或單擊按鈕時系統回發送WM_COMMAND消息,什麼都不做系統還會發送WM_TIMER消息。先不說別的,先搞清出這幾個消息再說。從MSDN中可以很方便的找到關於這幾個消息的幫助文檔。

WINDOWS提供通用的圖形設備接口(GUI),我們通過調用(GDI)函數和硬件打交道,不必理會設備環境,WINDOWS會自動將設備環境結構映射到相應的物理設備,這應該就是設備無關性吧。
動態連接庫(DLL)應該是代碼重用的典型例子(不知道可不可這樣說),把一些模塊、自己新編的類單獨調試並編譯成DLL,及增加代碼的可讀性也提高了程序模塊的靈活性。

用Developer Studio建立項目Developer Studio會創建很多中間文件,這些文件還是有必要說一下的。

APS //支持ResourceView
BSC //浏覽器信息文件
CLW //支持ClassWizard
DSP //項目文件,不能刪除和用文本編輯器編輯
DSW //工作空間文件,不能刪除和用文本編輯器編輯
MAK //外部的創建文件
NCB //支持ClassView
OPT //保存工作空間的配置
PLG //建立日志文件


這些文件都有一定的作用,拿CLW來說,如果你有一個新類,需要加到ClassWizard中,除了將相應的.h 和.cpp加到DSP中還需要重新編譯CLW。PLG文件記錄著你的項目配置信息。

VC++的源程序浏覽器能夠使我們從類或函數的角度來了解或編輯程序,而不是直接從文件入手。在看別人的源代碼時如果能熟練的使用源代碼浏覽器將會事倍功半。源程序浏覽器主要的查看狀態有以下幾種:

Definitions and References——選擇任何函數、變量、類型、宏定義可以看到它在項目中的定義,並且在何處和什麼地方用到它。

Call Graph/Caller Graph——對於所選擇的函數,給出它的調用與被調用函數的圖示。

Derived Class Graph/Base Class Graph——給出類層次關系的圖形表示,可以看到所選擇的類的派生類和基類以及成員。

File Outline——對於所選的文件,列出文件中的類、函數和數據成員,同時還顯示它們定義的位置和使用位置。

可見Source Brower比起Class View來功能多了很多也更加好用,以前我就不知道,因為一般的VC++書沒有講或根本沒有注意這塊,看到講菜單、操作界面、編輯器時總是跳過,心想“沒吃過豬肉還沒見過豬跑?這種東西不用學就會”。可實際上還是應該仔細的看看的。

對於本章學習雷神建議大家在VC++6中用AppWizard生成一個空的程序,然後試著看看都有那些文件,和他們的類層次、函數、宏、結構的定義,我就是這樣干的,學編程不動手是不行的。

(未完待續)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved