MFC原始碼解讀(1) stdafx h

2021-08-06 07:03:29 字數 2047 閱讀 3604

在這裡先說一下環境。

win7+vs2015。

由於以前也沒有讀源**的經驗,看了看網上大神們給的一些套路,覺得也是一般,所以呢。我決定就按照源**檔案的排序,從a~z依次讀下來。

是不是跟許三多讀書的節奏有一點像?

第乙個檔案

上面的英文是說,這個源**就是為微軟的基礎類們提供了參考,並且這個源**是與隨著庫提供的電子文件是有關聯的。要詳細檢視這個資源需要參照微軟的基礎類們做成的產品。

緊接著就是stdafx.h這個檔案。

其實突然發現,做了這麼久的程式,尤其從大學大一就開始用vs的人,並不知道這個標頭檔案到底幹了些什麼。

所以就趁著這個機會,好好的研讀一下吧。

進入這個檔案後,前面的綠字都一樣,基本上沒啥用。

這個英文是說,這個標頭檔案包含了大多數程式能夠使用的標準』includes',這些東西都會預先編譯到乙個標頭檔案裡面去。

下面寫的就是這個檔案。

這個標頭檔案同名稱上看,win+sdk+ver,就是windows sdk version,就是關於sdk版本的乙個標頭檔案。關於這些標頭檔案先只做乙個大概了解。

_win32_winnt這個巨集是用來定義系統核心版本用的,這種就是來被定義_win32_winnt_maxver,而這個巨集就是定義在winsdkver.h這個標頭檔案中。

關於ntddi這個詞語的含義,我去網上搜尋了很多,很多人都是說這個是進行win系統程式設計的乙個程式設計元素,跟系統版本有關,但是具體沒有解釋具體是什麼,

這個也是用來提供定義windows各種版本的巨集,具體這些巨集是幹啥的,等用到再說吧。

/w4,這個是乙個警告級別,如下圖

下面的all_warnings巨集,是建立工程時候可以預先定義的巨集,

這裡可能定義你的工程的警告級別,這個一般在除錯的時候用的比較多。

下面兩句,提示預處理的時候不顯示4073和4702兩處錯誤。具體這兩個是什麼,我們後面再說。

這個用來設定處理器對函式的處理方式。

因為預處理的時候,函式呼叫時,會直接拷貝函式**到相關呼叫的地方,這個是用來設定相關深度的,也就是層數。可能只是mfc內建構造器?

afx_data_export跟進去是__declspec(dllexport),是設定函式為匯出函式的意思。具體設定以及名稱的意思我也不是很懂。

從注釋來看的話,這個巨集是用來設定引用的mfc的動態鏈結庫,是直接引用現成的庫還是自己修改預設值的時候重新編譯mfc的各種庫

進入afxv_dll.h檔案看一下,就是定義了一些呼叫mfcdll的預設巨集,暫時放一邊。

這就是設定的兩種不同巨集的選擇設定而已。

下邊接下來又定義了一些巨集,具體什麼作用,等用到了再說。

__declspec(selelctany) 使在標頭檔案中定義靜態成員變數可行。就是允許定義全域性變數。

to be continued。

jquery原始碼解讀1

function global,factory returnfactory w else pass this if window is not defined yet typeofwindow undefined window this,function window,noglobal 其中形參gl...

cppunit原始碼解讀 1序言

感謝原創 記得2003年的春節假期,難得有時間可以靜下來充充電,於是有了研讀cppunit原始碼的念頭。一來是為了熟悉cppunit的使用環境,而來也是希望通過研讀原始碼汲取有益的東西,這一系列的文章便是整理自筆者當初的原始碼閱讀筆記。如何將諸多技術綜合運用到乙個實際的framework中來,筆者以...

Bootstrap原始碼解讀排版(1)

原始碼解www.cppcns.com讀bootstrap排版 粗體可以使用和標籤讓文字直接加粗。例如 我在學習 iegcwwxflt strong bootstrap 原始碼b,strong 斜體使用標籤或來實現。例如 我在學bootstrap。強調相關的類 強調類都是通過顏色來表示強調 程式設計客...