stdafx.* 控制程式碼 和 ID (轉)

gugu99發表於2008-07-07
stdafx.* 控制程式碼 和 ID (轉)[@more@]

 

 

1.stdafx.*是幹什麼用的?怎麼用?
  和MFC的include都非常大,即使有一個的處理,編譯程式也要花費相當長的時間來完成工作。由於每個.CPP檔案都包含相同的include檔案,為每個.CPP檔案都重複處理這些檔案就顯得很傻了。
  為避免這種浪費,AppWizard和Visual C++編譯程式一起進行工作,如下所示:
  ◎AppWizard建立了檔案stdafx.h,該檔案包含了所有當前工程檔案需要的MFC include檔案。且這一檔案可以隨被選擇的選項而變化。
  ◎AppWizard然後就建立stdafx.cpp。這個檔案通常都是一樣的。
  ◎然後AppWizard就建立起工程檔案,這樣第一個被編譯的檔案就是stdafx.cpp。
  ◎當Visual C++編譯stdafx.cpp檔案時,它將結果儲存在一個名為stdafx.pch的檔案裡。 (副檔名pch表示預編譯標頭檔案。)
  ◎當Visual C++編譯隨後的每個.cpp檔案時,它閱讀並使用它剛生成的.pch檔案。 Visual C++不再分析Windows include檔案,除非你又編緝了stdafx.cpp或stdafx.h。

  2.控制程式碼和ID有什麼區別?
  什麼是“控制程式碼”(handle),handle的本意是把柄,把手的意思。是你與操作打交道的東東。舉個通俗的例子,比如你考上了大學,入學後,學校()會給你一個學生證號。注意,這個號碼是學校指定的,你無法自選。有了這個號碼(學生證,假設一證多用)享受學校提供的服務:如你就可以去圖書館借書,去食堂吃飯,去教室上課等等。但你不能到食堂裡買啤酒,因為學校不允許這種服務。而在中系統提供的服務就是,你有了HANDLE,就可以理直氣壯地向系統提出呼叫API的服務。而指標的權力就大多了,有了指標你可以到處去喝酒,打架,學校(作業系統)管不著,所以控制程式碼和指標的區別在於控制程式碼指標呼叫系統提供的服務。而控制程式碼雖然是一個能相互區別的號碼,但與我們普通的ID號又有區別,普通的ID號是可以由程式設計師自己定義的,而控制程式碼不行,它是生成是系統指定的,是為了區別系統中存在的各個物件,這個控制程式碼不是由程式設計師符給的。

 控制程式碼 
  1。控制程式碼,是整個windows的基礎,一個控制程式碼是指使用的一個唯一的整數值,是指一個四位元組長的數值,用於標誌應用程式中的不同物件和同類物件中的不同的例項,諸如,一個視窗,按鈕,圖示,捲軸,輸出裝置,或者檔案等。應用程式能夠透過控制程式碼訪問相應的物件的資訊。
  2。控制程式碼不是一個指標,程式不能利用它控制程式碼來直接閱讀檔案中的資訊。如果控制程式碼不用在I/O檔案中,它是毫無用處的。
  3。控制程式碼是windows用來標誌應用程式中建立的或是使用的唯一整數,windows使用了大量的控制程式碼來來標誌很多物件。
  說明:例項——在windows環境下,不但可以執行多個應用程式,還可以執行多個應用程式的多份複製,每個複製叫做一個例項,並且有不同的例項控制程式碼。一個例項控制程式碼是windows可以單獨執行的副本,是唯一可以標誌此例項的整數。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1006891/,如需轉載,請註明出處,否則將追究法律責任。

相關文章