1. 程式人生 > >Programming Windows程式開發設計指南->第一章 開始

Programming Windows程式開發設計指南->第一章 開始

1. 開始0. 開始

本書介紹了在Microsoft Windows 98Microsoft Windows NT 4.0Windows NT 5.0下程式寫作的方法。這些程式用C語言編寫並使用原始的Windows Application Programming InterfaceAPI)。如在本章稍後所討論的,這不是寫作Windows程式的唯一方法。然而,無論最終您使用什麼方式寫作程式,瞭解Windows API都是非常重要的。

正如您可能知道的,Windows 98已成為使用Intel 32位微處理器(例如486Pentium)的IBM相容型個人電腦環境上最新的圖形作業系統之代表。Windows NT

IBM PC相容機種以及一些RISC(精簡指令集電腦)工作站上使用的Windows工業增強型版本。

使用本書有三個先決條件。首先,您應該從使用者的角度熟悉Windows 98。不要期望可以在不瞭解Windows使用者介面的情形下開發其應用程式。因此,我建議您在開發程式(或在進行其他工作)時使用執行Windows的機器來跑Windows應用程式。

第二,您應瞭解C語言。如果要寫Windows程式,一開始卻不想了解C語言,那不是一個好主意。我建議您在文字控制檯環境中,例如在Windows 98 MS-DOS命令提示視窗下提供的環境中學習C語言。Windows程式設計有時包括一些非文字模式程式設計的

C語言部分;在這些情況下,我將針對這些問題提供討論。但大多數情況下,您應非常熟悉該語言,特別是C語言的結構和指標。瞭解標準C語言執行期程式庫的一些相關知識是有幫助的,但不是必要的。

第三,您應該在機器上安裝一個適於進行Windows程式設計的32C語言編譯器和開發環境。在本書中,假定您正在使用Microsoft Visual C++ 6.0,該套裝軟體可獨立購買,也可作為Visual Studio 6.0套裝軟體的一部分購買。

到此為止,我將不再假設您具有任何圖形使用者介面(如Windows)的程式寫作經驗。

WINDOWS環境

Windows幾乎不需要介紹。然而人們很容易忘記Windows

給辦公室和家庭個人電腦所帶來的重大改變。Windows在其早期曾經走過一段坎坷的道路,征服個人電腦市場的前途一度相當渺茫。

Windows簡史

1981年秋天IBM PC推出之後不久,MS-DOS就已經很明顯成為PC上的主流作業系統。MS-DOS代表Microsoft Disk Operating System(磁碟作業系統)。MS-DOS是一個小型的作業系統。MS-DOS提供給使用者一種命令列介面,提供如DIRTYPE的命令,也可以將應用程式載入記憶體執行。對於應用程式寫作者,它提供了一組函式呼叫,進行檔案的輸入輸出(I/O )。對於其他的周邊處理-尤其是將文字或圖形寫到顯示器上-應用程式可以直接存取PC的硬體。

由於記憶體和硬體的限制,成熟的圖形環境緩慢地才到來。當蘋果電腦公司不幸的Lisa電腦在19831月發表時,它提供了不同於文字模式環境的另一種選擇,並在19841月成為Macintosh上圖形環境的一種標準。儘管Macintosh的市場佔有率在下降,但是它仍然被認為是衡量所有其他圖形環境的標準。包括MacintoshWindows的所有圖形環境,其實都要歸功於Xerox Palo Alto Research CenterPARC)在70年代中期所作的開拓性研究工作。

Windows是由微軟在198311月(在Lisa之後,Macintosh之前)宣佈,並在兩年後(198511月)發行。在此後的兩年中,緊隨著Microsoft Windows早期版本1.0之後,又推出了幾種改進版本,以支援國際商業市場,並提供新型視訊顯示器和印表機的驅動程式。

Windows版本2.0是在198711月正式在市場上推出的。該版本對使用者介面做了一些改進。這些改進中最有效的是使用了可重疊式視窗,而Windows 1.0中使用的是並排式視窗。Windows 2.0還增強了鍵盤和滑鼠介面,特別是加入了選單和對話方塊。

至此,Windows還只要求Intel 8086或者8088等級的微處理器,以「實際模式」執行,只能存取地址在1MB以下的記憶體。Windows/386(在Windows 2.0之後不久發行的)使用Intel 386微處理器的「虛擬8086」模式,實現將直接存取硬體的多個MS-DOS程式視窗化和多工化。為了統一起見,Windows版本2.1被更名為Windows/286

Windows 3.0是在1990522發表的。它將Windows/286Windows/386結合到同一種產品中。Windows 3.0有了一個很大的改變,這就是對Intel286386486微處理器保護模式的支援。這能使WindowsWindows應用程式能存取高達16MB的記憶體。Windows用於執行程式和維護檔案的「外殼」程式得到了全面的改進。Windows 3.0是第一個在家用和辦公室市場上取得立足點的版本。

任何Windows的歷史介紹都必須包括一些OS/2的說明,OS/2是對DOSWindows的另一種選擇,最初是由MicrosoftIBM合作開發的。OS/2版本1.0(只有文字模式)在Intel 286(或者後來的)微處理器上執行,在1987年末釋出。在198810月的OS/2版本1.1中出現了管理圖形使用者介面的PMPresentation Manager)。PM最初的設計構想是成為Windows的一種保護模式版本,但是圖形API改變程度太大,致使軟體生產廠商很難提供對這兩種平臺的支援。

19909月,IBMMicrosoft之間的衝突達到了高峰,導致這兩個公司最後分道揚鑣。IBM接管了OS/2,而Microsoft明確表示Windows將是他們作業系統策略的中心。雖然OS/2仍然擁有一些狂熱的崇拜者,但是它遠不及Windows這樣的普及程度。

Microsoft Windows版本3.119924月釋出的,其中包括的幾個重要特性是TrueType字型技術(給Windows帶來可縮放的輪廓字型 )、多媒體(聲音和音樂 )、物件連結和嵌入(OLEObject Linking and Embedding)和通用對話方塊。跟OS/2一樣,Windows 3.1只能在保護模式下運作,並且要求至少配置了1MB記憶體的286386處理器。

19937月發表的Windows NT是第一個支援Intel 386486Pentium微處理器32位保護模式的Windows版本。Windows NT提供32位平坦定址,並使用32位的指令集。(本章後面我會談到一些定址空間的問題 )Windows NT還可以移植到非Intel處理器上,並在幾種使用RISC晶片的工作站上執行。

Windows 95是在19958月釋出的。和Windows NT一樣,Windows 95也支援Intel 386或更高等級處理器的32位保護模式。雖然它缺少Windows NT中的某些功能,諸如高安全性和對RISC機器的可移植性等,但是Windows 95具有需要較少硬體資源的優點。

Windows 9819986月釋出,具有許多加強功能,包括執行效能的提高、更好的硬體支援以及與Internet和全球資訊網(WWW)更緊密的結合。

Windows方面

Windows 98Windows NT都是支援32位搶佔式多工(preemptive multitasking)及多執行緒的圖形作業系統。Windows擁有圖形使用者介面(GUI ),這種使用者介面也稱作「視覺化介面」或「圖形視窗環境」。有關GUI的概念可追溯至70年代中期,在AltoStar等機器上以及SmallTalk等環境中由Xerox PARC所作的研究工作。該項研究的成果後來被Apple ComputerMicrosoft引入主流並流行起來。雖然有一些爭議,但現在已非常清楚,GUI是(MicrosoftCharles Simonyi的說法)一個在個人電腦工業史上集各方面技術大成於一體的最重要產物。

所有GUI都在點矩陣對應的視訊顯示器上處理圖形。圖形提供了使用螢幕的最佳方式、傳遞資訊的視覺化豐富多彩環境,以及能夠WYSIWYGwhat you see is what you get:所見即所得)的圖形視訊顯示和為書面檔案準備好格式化文字輸出內容。

在早期,視訊顯示器僅用於迴應使用者通過鍵盤輸入的文字。在圖形使用者介面中,視訊顯示器自身成為使用者輸入的一個來源。視訊顯示器以圖示和輸入裝置(例如按鈕和滾動條)的形式顯示多種圖形物件。使用者可以使用鍵盤(或者更直接地使用滑鼠等指向裝置)直接在螢幕上操縱這些物件,拖動圖形物件、按下滑鼠按鈕以及滾動滾動條。

因此,使用者與程式的交流變得更為親密。這不再是一種從鍵盤到程式,再到視訊顯示器的單向資訊流動,使用者已經能夠與顯示器上的物件直接互動作用了。

使用者不再需要花費長時間學習如何使用電腦或掌握新程式了。Windows讓這一切成真,因為所有應用程式都有相同的基本外觀和感覺。程式佔據一個視窗-螢幕上的一塊矩形區域。每個視窗由一個標題列標識。大多數程式功能由程式的選單開始。使用者可使用滾動條觀察那些無法在一個螢幕中裝下的資訊。某些選單專案觸發對話方塊,使用者可在其中輸入額外的資訊。幾乎在每個大的Windows程式中都有一個用於開啟檔案的特殊對話方塊。該對話方塊在所有這些Windows程式中看起來都一樣(或接近相同),而且幾乎總是從同一選單選項中啟動。

一旦您瞭解使用一個Windows程式的方法,您就非常容易學習其他的Windows程式。選單和對話方塊允許使用者試驗一個新程式並探究它的功能。大多數Windows程式同時具有鍵盤介面和滑鼠介面。雖然Windows程式的大多數功能可通過鍵盤控制,但使用滑鼠要容易得多。

從程式寫作者的角度看,一致的使用者介面來自於Windows建構選單和對話方塊的內建程式。所有選單都有同樣的鍵盤和滑鼠介面,因為這項工作是由Windows處理,而不是由應用程式處理。

為便於多個程式的使用,以及這些程式間資訊的交換,Windows支援多工。在同一時刻能有多個Windows程式顯示並執行。每個程式在螢幕上佔據一個視窗。使用者可在螢幕上移動視窗,改變它們的大小,在不同程式間切換,並從一個程式向另一個程式傳送資料。因為這些視窗看起來有些像桌面上的紙(當然,這是電腦還未佔據辦公桌之前的年代),Windows有時被稱作:一個顯示多個程式的「具象化桌面」。

Windows的早期版本使用一種「非搶佔式(non-preemptive)」的多工系統。這意味著Windows不使用系統計時器將處理時間分配給系統中執行的多個應用程式,程式必須自願放棄控制以便其他程式執行。在Windows NTWindows 98

相關推薦

Programming Windows程式開發設計指南->第一 開始

1. 開始0. 開始 本書介紹了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程式寫作的方法。這些程式用C語言編寫並使用原

項目管理知識體系指南 第一引論 項目的含義

span 臨時性 趨勢 系統 包括 工廠 開發 研究 font 項目的含義 項目是為創造獨特的產品、服務或成果而進行的臨時性工作。 項目可以創造的事物 項目可以創造: 一個產品,可能是其他產品的組成部分、某個產品的升級,也可能本身就是最終產品; 一種服務或

第一 開始 Lua程序設計第二版筆記

col nbsp 下劃線 nil pre 使用 結果 保留 style --第一章 開始--1.1chunk 程序塊chunk大小可以任意,一個源代碼文件或交互模式中的一行代碼都是chunk --1.2詞法規範標識符通常保留下劃線開頭,作為Dummy Variable使用。

javascript設計模式 第一 靈活的javascript

設計 rip java con 支持 同事 問題 覆蓋 部分 javascript 設計模式 第1章 靈活的語言--JavaScript 初級程序員接到一個驗證表單功能的任務,需要驗證用戶名、郵箱、密碼等 ** 此文章內容大部分來自 《javascript設計模式》一書

大話設計模式--第一 簡單工廠設計模式

args bsp color apt col 參數 strong 簡單工廠設計模式 font 簡單工廠設計模式 案例: 寫一個計算器, 實現加減乘除. 第一步: 寫一份簡單的代碼 package com.chapter1; public class Caculator1

js設計模式第一 讀書筆記

1、簡單的驗證js function checkName(){ //驗證姓名 } function checkEmail(){ //驗證郵箱 } function checkPassword(){ //驗證密碼 } 上面的程式碼,建立了3個全域性變數,有可能被別人覆蓋

C語言Windows程式開發Windows視窗樣式與常用控制元件樣式【第04天】

(一)Windows視窗(MDICLIENT)樣式介紹 1 /* Windows視窗樣式 */ 2 WS_BORDER //帶有邊框的視窗 3 WS_CAPTION //帶有標題欄的視窗 4 WS_CHILD

大話設計模式第一-簡單工廠模式

dem 虛線 大話設計模式 設計 箭頭 bsp 工廠 第一章 簡單 1 簡單工廠模式--uml 繼承關系--空心三角形——實線 實線接口 空心三角形——實虛線

Linux程序設計 筆記——第一入門

red linux的應用 活性 執行文件 編譯器 任務 linux程序 ascii碼 區別 1、Unix的哲學   簡單性:Keep It Small and Simple。越大、越復雜的系統註定包含越大、越復雜的錯誤,而調試是所有人的苦差事。   集中性:不要把所有亂七八

Python資料分析基礎教程:NumPy學習指南 第一 NumPy基礎

目錄 第一章    NumPy基礎 1.1    NumPy陣列物件 關鍵字:array、arange、ndarray、type、dtype、shape、下標 1.2    NumPy資料型別

JavaScript權威指南 第一 程式碼總結

var points = [{x:0,y:0},{x:1,y:1}] points.dist=function(){var p1=this[0];var p2=this[1];var a=p2.x-p1.x;var b=p2.y-p1.y;return Math.sqrt(a*a+b*b);}

譯_jBPM4使用者指南:第一_介紹

本文為JBoss jBPM4官方使用者指南譯文,可以與原文對照看,水平有限,有不對的地方請不吝指出。原文地址: http://docs.jboss.com/jbpm/v4/userguide/html_single/#d0e14   第一章 介紹 這篇文章最好在火狐瀏覽器中

Head First設計模式 第一:策略模式

模擬鴨子應用: 繼承: 設計一個遊戲。裡面有各種鴨子。一開始我們建立一個鴨子超類(Suprclass),並讓各種鴨子來繼承這個類。 如: 對所有鴨子通用的方法由超類來實現,對每個鴨子子類不同的方法由各個子類來實現該方法。 這時,如果我們想讓鴨子能飛,我們又在超類

1.5Android程式設計權威指南第一程式碼

activity_quiz.activity <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr

C語言程式設計前五總結

           程式與設計前五章總結    回顧之前的學習,開啟書本迎面而來的便是第一章的標題,為什麼要學c語言?    c語言的優勢便是他的簡潔與效率。而隨著計算機的發展,硬體越來越便宜,效能越來越高,執行效率已經不是那麼重要,c語言的弊端便就顯現出來,不比其他語

Kali Linux 無線滲透測試入門指南 第一 配置無線環境

第一章 配置無線環境 作者:Vivek Ramachandran, Cameron Buchanan 譯者:飛龍 簡介 如果我要在八個小時之內砍倒一棵樹,我會花六個小時來磨我的斧子。 – 亞伯拉罕·林肯,第

微信小程式開發入門第七:收藏、評論、點贊及計數功能

    本章內容有一定的難度,但其中的技巧和知識還是很豐富的。本章通過編寫幾乎所有內容型應用都會附帶的“評論”“點贊”“閱讀計數”“收藏”等功能,來學習使用小程式的互動反饋元件、快取的應用、圖片選擇和預覽、遮蔽關鍵字、錄音、拍照以及播放錄音等功能7.1 收藏、評論、點贊、計數

scons使用者指南第一:編譯和安裝SCons

如果Python沒有安裝,你會看到一條錯誤訊息比如“command not found”(在UNIX或Linux裡)或"python is not recognized as an internal or external command, operable program or batch file"(在W

開發藝術探索——第一:Activity的生命週期和啟動模式

目錄 1.1 Activity 的生命週期和啟動模式 1.1.1 典型情況下的生命週期分析 1.1.2 異常情況下的生命寧週期分析 1.2 Activity 的啟動模式 1.2.1 Activity 的 LaunchMode 1.2.2 Activity 的Flags

微信小程式開發入門指南

上篇文章我們已經一起成功建立了一個Hello World級別的微信小程式。 那麼這篇文章我們將詳細講解下這個例子中的相關程式碼部分。 程式碼構成 正如你所看到的,這個專案中生成了很多不同型別的檔案。 .json 字尾的 JSON 配置