淺析Visual C++兩套完整的Windows應(yīng)用程序說(shuō)明
本篇文章主要介紹Visual C++的相關(guān)使用及其注意的問(wèn)題,以下是Visual C++應(yīng)用程序的大致創(chuàng)建過(guò)程,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。希望大家多多多轉(zhuǎn)載。
1.Windows操作系統(tǒng)運(yùn)行程序時(shí),它首先調(diào)用程序中的WinMain函數(shù),該函數(shù)用來(lái)完成某些特殊的任務(wù),其中最重要的任務(wù)就是創(chuàng)建該應(yīng)用程序的主窗口?;贛S-DOS的程序和Windows的程序之間的一個(gè)最根本的差別,就在于前者是通過(guò)調(diào)用操作系統(tǒng)的功能來(lái)獲得用戶(hù)輸入,而后者則是通過(guò)操作系統(tǒng)發(fā)送的消息來(lái)處理用戶(hù)輸入。
2.許多Windows消息都經(jīng)過(guò)了嚴(yán)格的定義,并適用于所有的程序。所有的消息都有兩個(gè)32位的參數(shù),可以保存如光標(biāo)位置、鍵盤(pán)碼這樣的信息。在用戶(hù)進(jìn)行菜單選擇或者對(duì)話框按鈕單擊等操作時(shí),系統(tǒng)又會(huì)發(fā)送WM_COMMAND命令消息給適當(dāng)?shù)拇翱凇?/P>
3.許多MS-DOS程序都直接往視頻存儲(chǔ)區(qū)或打印機(jī)端口輸送數(shù)據(jù),其不利之處是必須提供相應(yīng)的驅(qū)動(dòng)程序。Windows(已經(jīng)提供了各種驅(qū)動(dòng)程序)提供一個(gè)稱(chēng)為圖形設(shè)備接口GUI的抽象接口,程序可以通過(guò)調(diào)用GUI函數(shù)和硬件打交道,而這些函數(shù)會(huì)自動(dòng)參考被稱(chēng)為設(shè)備環(huán)境DC的數(shù)據(jù)結(jié)構(gòu)。Windows會(huì)自動(dòng)將設(shè)備環(huán)境結(jié)構(gòu)映射到相應(yīng)的物理設(shè)備,并提供正確的IO指令。#t#
4. 進(jìn)行Windows程序設(shè)計(jì)時(shí),可用一些特定的格式將有用的數(shù)據(jù)存儲(chǔ)在資源文件中,這樣,連接起就可以把C++的二進(jìn)制代碼和二進(jìn)制資源文件結(jié)合起來(lái)生成可執(zhí)行文件。
5.Windows允許動(dòng)態(tài)連接,即一些特定結(jié)構(gòu)的庫(kù)可以在運(yùn)行過(guò)程中被裝入和連接,并且多個(gè)程序可共享同一個(gè)動(dòng)態(tài)連接庫(kù),這樣可大大節(jié)省內(nèi)存和磁盤(pán)空間。同時(shí),動(dòng)態(tài)連接庫(kù)還可以大大提供程序的模塊靈活性,因?yàn)槲覀兛梢詥为?dú)編譯和調(diào)試動(dòng)態(tài)連接庫(kù)。
6.Visual C++包括兩套完整的Windows應(yīng)用程序開(kāi)發(fā)系統(tǒng)。它還包括ActiveX模板庫(kù)ATL,可用來(lái)開(kāi)發(fā)在Internet上使用的ActiveX控件。ATL編程既不是Win32的C編程,也不是MFC編程。ATL是一個(gè)完全獨(dú)立于MFC的工具,用它可以建立ActiveX控件??捎肕FC建立ActiveX控件,也可用ATL建立ActiveX控件,但ATL控件相對(duì)來(lái)說(shuō)又小又快,適合在Internet上使用。
7.以下是Visual C++應(yīng)用程序的大致創(chuàng)建過(guò)程:
8.make文件保存了編譯器和連接器的參數(shù)選項(xiàng),還表述了所有源文件之間的關(guān)系。Make程序首先讀取make文件,然后激活編譯器、匯編器、資源編譯器和連接器以便產(chǎn)生最后的輸出,通常是可執(zhí)行文件。
9.項(xiàng)目project是一些相互關(guān)聯(lián)的文件的集合,這些文件經(jīng)過(guò)編譯、連接,然后組合在一起形成可執(zhí)行的Windows應(yīng)用程序或者DLL。項(xiàng)目文件不但指定了所有文件之間的依賴(lài)關(guān)系,而且還定義了編譯和連接選項(xiàng)。
10.以下是Developer Studio會(huì)建立的一些中間文件及描述:
- File Extension
- Description
- APS
- Supports ResourceView
- BSC
- Browser information file
- CLW
- Supports ClassWizard
- DEP
- Dependency file
- DSP
- Project file*
- DSW
- Workspace file*
- MAK
- External makefile
- NCB
- Supports ClassView
- OPT
- Holds workspace configuration
- PLG
- Builds log file