c語言的學習,一般的方式是,先學c,然後是c++,最好還要有組合語言和微機原理基礎,然後才是visual c++。這樣的方式,對學習者來說,要花費很多時間和耐力。而在學校教學中,也沒有時間深入學習windows程式設計的實用技術了。
其實,具有了c語言基礎後,再有一些基本的c++類的概念,就可以直接學習windows c程式設計了。
一、走近windows c語言
很多語言都把顯示乙個「hello,world!」做為第乙個入門程式, c語言的第乙個程式是這樣的:
#include
main()
如果把main函式寫成帶引數的main函式,應該是:
#include
main(int arge,char *argv)
windows c的第乙個程式和這個程式在形式和原理上都是一致的,只是有兩點不同:
1. 主函式接收的形參不只是命令列中的字串的個數和字串的首位址。
2. c語言的很多函式在windows c中都可以繼續使用,但象printf()螢幕顯示等函式就不能繼續使用了。因為windows是多工作業系統,螢幕已不再為某乙個應用程式所獨有,windows c應用程式要顯示字串,需要使用windows提供的api函式,開自己的視窗
下面是乙個最簡單的,顯示「hello,world!」的windows c程式:
#include
apientry winmain(hinstance hinstance,hinstance hprevinstance,
lpstr lpcmdline,int ncmdshow)
主函式的形參有四個:
1) hinstance:接收程式執行時當前例項的控制代碼;
2) hprivinstance:前乙個例項的控制代碼;
3) lpcmdline:程式命令列指標;
4) ncmdshow:乙個用來指定視窗顯示方式的整數。
這幾個引數的使用我們會在深入的學習中介紹的。
顯示hello,word!字串,我們使用了乙個messagebox函式,這個函式會在螢幕上顯示乙個對話方塊,它的原型是:
int messagebox(hwnd hwnd,lpctstr lptext,lpctstr lpcaption,unit utype)
四個引數分別是:
1) hwnd:父視窗的控制代碼;
2) lptext:要顯示字串的指標;
3) lpcaption:對話方塊標題字串的指標;
4) utype:顯示在對話方塊上的小圖示的型別。
使用這個函式要包含windows.h標頭檔案。
除錯一下,怎麼樣?視窗上彈出了乙個「第乙個windows c程式」對話方塊,上面有一行字:「hello,world!」。
世界真的很美好啊!!
深入程式設計:
在c語言中,函式的宣告,如果沒有指明返回值型別,預設值為void,這個程式的主函式就沒有返回值。不過,在windows程式設計時,我們最好養成個好習慣,指明函式的返回值型別,因為在c++中,函式返回值型別是不可以預設的。而我們在windows c程式設計時,還是會用到c++的一些概念,這樣做,有利於以後深入地學習。
規範一點的程式應該是這樣的:
#include
int apientry winmain(hinstance hinstance,hinstance hprevinstance,
lpstr lpcmdline,int ncmdshow)
這裡,我們宣告的型別為int型,並且返回乙個值0,這樣的函式就可以使用在複雜一點的函式呼叫中了。
在這一節中,我們有幾處都提到了控制代碼的概念,控制代碼和指標的概念不同,它是作為作業系統內部索引表中的乙個值來使用的,這樣可以防止應用程式直接訪問名物件的內部結構,體現了windows資源管理的優越性。譬如說,乙個視窗找開之後,好對應記憶體中的乙個記憶體塊,這個視窗所在的記憶體快位址往往會由作業系統做動態的調整,但其卻不會隨之變化。不過,通過它可以訪問這個視窗,所以在使用的時候,可以把它當做指標一樣看待
windows 下的網路程式設計
用簡單的 和演示說明了winsocket的使用一般必要步驟。先看看程式執行的效果吧 最上面的乙個視窗為服務端,下面的視窗為客戶端,服務端的主迴圈負責接收資料。如果客戶端輸出 exit 字串的話,則服務端和客戶端程式終止。這個示例主要是通過簡單的 讓初學者了解到wsa winsocketapi 的啟動...
windows下的網路程式設計
windows下的網路程式設計 做過windows網路程式設計的人都知道,微軟的mfc把複雜的winsock api函式封裝到類裡,這使得編寫網路應用程式更容易。即windows既提供上層的網路api函式也提供底層的api函式。1 對於採用上層的api函式而言 若採用csocket類定義乙個物件ob...
C語言windows程式設計
include windows除錯藝術 從真實病毒學習訊息機制 安全客,安全資訊平台 使用訊息機制執行 hinstance g hinstance 0 視窗處理函式 lresult callback wndproc hwnd hwnd,uint umsg,wparam wparam,lparam l...