windows程式設計初步 一

2022-04-01 17:41:50 字數 2764 閱讀 4743

所謂的windows程式設計,應該就是呼叫windows的api進行程式設計.進行windows程式設計有兩種方法:

使用microsoft platform sdk(software development kit)軟體開發工具包.

microsoft 對api進行封裝而成的mfc(microsoft foundation class)microsoft基礎類庫.

我主要學習的使用sdk進行windows方面的程式設計,使用開發工具是visual c++ 6.0。

自從brain w.kernighan和dennis m.ritchie編著的《the c progamming language》出版以後,基本上所有的介紹程式語言方面的書都是從「hello world」開始的。下面就先來開學windows版的"hello world".

# define win32_and_mean

# include # include int winapi winmain(hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int nshowcmd)

下面來對程式**進行分析,以便理解windows程式設計過程.
首先,第一行是
# define win32_and_mean
知道c/c++程式設計的很容易看出,這只是一條預編譯指令.上面也提到windows程式設計有兩種方法,mfc和sdk.

使用這條預編譯指令就是確定標頭檔案的包含邏輯,

不要包含不需要的mfc標頭檔案.

下面就是對兩個標頭檔案,的包含.
就像乙個"批量"的標頭檔案包含,它包含了

大部分的進行windows程式設計所需要的標頭檔案.包含了改標頭檔案就需要在手工的顯示包含其餘的標頭檔案了.

該標頭檔案包含了許多重要的巨集和常量,使用該檔案能夠大大的簡化windows程式設計.
下面介紹下,windows的其餘的主要的標頭檔案:
windef.h 基本的型別定義.
winnt.h  支援unicode的型別定義
winbase.h 核心函式
winuser.h 使用者介面函式
wingdi.h  圖形裝置介面函式. 這些標頭檔案定義了windows所有的資料型別,函式呼叫,資料結構和常數識別符號.
我們知道每個應用程式程式都會有乙個入口函式,c/c++的入口函式為main().而所有的windows應用程式的入口函式都是winmain().
該函式在winbase.h宣告如下:
int winapi winmain(hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int nshowcmd) ;
我們知道每個函式都有乙個返回值,無疑的int就是winmain的返回型別.
那麼winapi識別符號有什麼意義呢?winapi識別符號在windef.h中定義如下:# define winapi _stdcall.從這個定義我們可以看出,

winapi實際是對函式呼叫的

約定,規定了函式的引數從右向左壓入棧中.
下面詳細的看下該函式的引數:
各種各樣的視窗顯示情況.如下:
sw_hioe:隱藏視窗並且啟用另外乙個視窗。

sw_minimize:最小化指定的視窗,並且啟用在系統表中的頂層視窗。

sw_restore:啟用並顯示視窗。如果視窗已經最小化或最大化,系統將以恢復到原來的尺寸和位置顯示視窗(與sw_shownormal相同)。

sw_show:啟用乙個視窗並以原來的尺寸和位置顯示視窗。

sw_showmaximized:啟用視窗並且將其最大化。

sw_showminimized:啟用視窗並將其目標化。

sw_showminnoactive:將乙個視窗顯示為圖示。啟用視窗維持活動狀態。

sw_showna:以視窗的當前狀態顯示視窗。啟用視窗保持活動狀態。

sw_shownoactivate:以視窗的最近一次的尺寸和位置顯示視窗。啟用視窗維持啟用狀態。

sw_shownormal:啟用並顯示視窗。如果視窗最大化或最小化,系統將其恢復到原來的尺寸和位置(與sw_restore相同)。

下面來繼續看下messagbox函式

該函式功能就是在在螢幕上顯示多種樣式的視窗,如:帶有不同按鈕個數的視窗

函式的宣告如下:

int messagebox(hwnd hwnd,lpctstr ipcaption,uint utype);

看下函式各個引數:

第一組常量是如下:(代表了顯示空中顯示的按鈕)

第二組常量如下:(代表了顯示圖示)

可以從兩組常量中任選常量使用'|'運算子組合,但是每組常量只能選擇乙個.

值得一說的是,messagebox函式是有返回值的.可能的返回值如下:(根據按鈕的不同)

值選擇的按鈕

idabort

abort

idcancel

cancel

idignore

ignore

idno

noidok

okidretry

retry

idyes

yes第乙個windows程式的分析到此結束.

windows核心程式設計 程序初步

程序 什麼是程序,系統如何建立乙個核心物件來管理程序。如何通過程序核心物件來操作乙個程序。程序的屬性,以及查詢和修改程序屬性的函式。程序的結束。乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。程序是死的,程序必須有乙個執行緒!primary thread 如果程序內所有執行緒退出,那麼...

Windows 的多執行緒程式設計初步

一般情況下多執行緒程式設計多採用mfc類庫實現,那麼如果不使用mfc 如何進行多執行緒程式設計呢?本文將就這個問題進行討論 微軟在windows api中提供了建立新的執行緒的函式createthread,它的語法如下 hthread createthread security attributes...

網路程式設計初步認識(一)

1 socket是連線應用程式與網路驅動程式的橋梁,socket在應用程式中建立,通過繫結操作與驅動程式建立關係。應用程式送給socket的資料,由socket交給驅動程式,驅動程式向網路傳送出去。計算機從網路上收到與該socket繫結的ip位址和埠號相關的資料後,由驅動程式交給socket,應用程...