freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

用c語言寫聊天工具,類似于qq(已修改)

2025-05-29 13:53 本頁面
 

【正文】 C 語言究竟能干什么序言鑒于現(xiàn)在已經(jīng)大三了,很多同學(xué)很迷茫,自己學(xué)的東西到底能做什么,將來自己到底能干什么?我不想看著同學(xué)迷茫的面孔,
特別是幾個好兄弟,有幾個想學(xué)習(xí)編程,但又苦苦找不到門路的兄弟,所以想寫點東西,希望對大家又點略微的幫助,以盡兄弟我的微薄之力。很多同學(xué)學(xué)了C語言之后,可能難免會有所感嘆:這就是C語言!總是感覺C語言竟然能寫出Windows、Linux?為了解除同學(xué)們的疑惑,也愿為同學(xué)們指點編程之道吧。我寫的這些東西采用C語言,計劃通過編程實例來講解C編程的一些知識,讓大家對C能又更深一層的理解和認識。當然,大家不要指望看了這些之后會寫出一個操作系統(tǒng)來,但是我想,如果你認真看了的話,寫一個類似與的聊天程序應(yīng)該不難。 本來書是假期里照顧媽媽時寫的,原想是不讓自己的水平停滯不前,溫故知新(兩個月的假期是很長的)2. 幫助一些同學(xué),解決編程上的困惑,我是好樣的 但現(xiàn)在母親已經(jīng)能夠不在了,所以第三點,就改為原母親在天之靈得到慰藉,早日放下煩惱,不用惦記我們。C語言的基本語法我是不打算再提了,很多C語言編程的書,就是將一些基本的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、語法,然后就是一些數(shù)值計算的實例,大多數(shù)都是雷同的,難免有抄襲之嫌,而且頁沒有多少實用價值。本書以實用實例作為編程指導(dǎo),指引大家編寫真正實用的程序。了解到大家對黑客程序、病毒、窗口類程序比較感興趣,因此我就拿這些實例進行講解?;诖蠹一径加肳indows XP SP3,我也就在這個系統(tǒng)上把程序調(diào)試成功后再給大家講解。編程環(huán)境,我還是喜歡Visual C++ 本書計劃從四個大的方面來講,這四個方面是:窗口類、文件操作類、網(wǎng)絡(luò)類、數(shù)據(jù)庫類。都是時下流行的編程必備技術(shù),也是軟件開發(fā)者,必須掌握的技術(shù)。中間以實例講解,逐步學(xué)習(xí),相信大家看完后會有很大的提高的。第一章 窗口類程序的編寫這一章就先來講解下窗口類程序的編寫。因為現(xiàn)在程序沒有界面,就像人沒有臉面一樣,而且好的界面更能吸引人。從基本的界面開始,相信能給大家指明出一條路的,使大家很容易地掌握窗口序的編寫。其實界面設(shè)計利用VC 的MFC,很容易地制作出來。這里從底層開始寫代碼來寫界面程序,使大家知道一些底層的東西,為以后學(xué)習(xí)打下好的基礎(chǔ),相信您學(xué)了這些,再用VC 的MFC會得心應(yīng)手的。用 C 寫的第一個一個窗口程序 作為編程的開始,我們還是以一個Hello World來開始我們的學(xué)習(xí)之旅。代碼如下: include void main() { printf(Hello World!)。 }這是一個再簡單不過的C程序了,只要有點C語言的知識就能夠懂的,不過這里估計還有些人,到現(xiàn)在還不知道include
,我就來說下了,存在于磁盤上的,已VC為例它的位置如下圖:也許你聽說過printf(),但是你見過其定義的形式?jīng)]有,沒有且看下圖其定義形式,就如圖中所示,也許你并不懂前面那些東西是什么,不用擔心,以后我會慢慢解釋給大家的。函數(shù)是先定義才能使用的。上面是在命令行中顯示一個“Hello World!”,沒什么意思,下面我寫一個窗口程序,顯示個Hello World!include void main(){ MessageBox(NULL, Hello World!,我的第一個窗口程序,MB_OK)。}編譯運行后如下圖:彈出的是一個對話框,上面有Hello World,還有一個標題和一個“確定”按鈕。當然你會說這對話框也算個窗口嗎?這里肯定的告訴你:是的,對話框是窗口程序的一個子集。你可能還會這樣問,這樣一個簡單的窗口有啥用呢,其實這樣的窗口非常有用,我們在操作計算機的時候,會出現(xiàn)一些警告或提示的對話框,都是基本是這種方法寫出來的。就算是這個很簡單,學(xué)習(xí)本來不就是有易向難,有淺顯深奧去的過程嗎。整個效果幾乎就是靠一個函數(shù)MessageBox的功勞。這里也先不介紹這個函數(shù)了,說些其他的。其實用C編寫一些惡程序,就是把編程環(huán)境中所提供的一些函數(shù)熟悉了基本就可以了。用VC來寫成序,其中的頭文件有很多,定義了很多Windows API 函數(shù) 、數(shù)據(jù)結(jié)構(gòu)、宏,可以讓我們大家運用,通過它們,我們可以快速開發(fā)出使用的程序。這些Windows API在微軟的MSDN上查,上面有很多說明,部分還有代碼示例。不會是可以輸入函數(shù)名,查找相關(guān)信息,建議大家用英文版的Library,因為其內(nèi)容比中文版的全面,英語不好的同學(xué)呢,就先看中文了中文MSDN:英文MSDN:到這里,我們就完成第一個有界面程序的編寫,你感覺寫有界面的程序難嗎?顯然不難。下面看一個向鋒和波波感興趣的程序:九九乘法采用命令行形式include “”int i=0,j=0。for(i=1。i10。i++) for(j=1。ji+1。j++) printf(“%d*%d=%d \t”,j,i,j*i)。 printf(“\n”)。和那個javascript效果都是一樣的,所以語言只要學(xué)好一樣,其他的就很容易旁通的,學(xué)習(xí)就撿一種學(xué)好,不要貪多。好的,這一節(jié)就這樣吧,大家先各自了解下微軟的MSDN,對以后的學(xué)習(xí)會有很大的幫助的。 第一個真正的窗口程序上一節(jié)中,我們用MessageBox函數(shù)輕松地實現(xiàn)了一個對話框窗口,可能你會說,那僅僅是個沒有用的對話框而已,是的,只是對話框而已。我之所以以一個對話框為例呢,是因為我只是想讓你知道寫一個有界面的程序并不是件難辦的事。明白了這一點后,我們繼續(xù)。今天來編寫一個真正的窗口程序。下面就該羅嗦一段了,由于大家以前并沒有寫過什么窗口程序,寫的都是命令行下的,我們知道在命令行下的程序都有一個主函數(shù)main,這個函數(shù)也就是程序的入口函數(shù)。我們現(xiàn)在用VC ,而且要寫窗口類程序,VC ()這個函數(shù)原型是這樣的int WINAPI WinMain(  HINSTANCE hInstance,   HINSTANCE hPrevInstance,   LPSTRlpCmdLine,   int nCmdShow)。大家是不是感覺這個函數(shù)挺復(fù)雜的,有這么幾個參數(shù),而像main好像就沒有參數(shù)。其實main是有參數(shù),這個向鋒和小四是知道了的。但是main函數(shù)的參數(shù)是可以省略的,而WinMain是不可以省的。這里也要對VC 看下圖依次 是“工程”→“設(shè)置”→“連接”,在“工程選項”里把console改為windows就可以了。如果認真學(xué)了匯編,或是手寫命令編譯連接過C程序,就會知道這是干什么的。Console是控制臺的意思,以前我們用mian函數(shù)寫的程序都是以控制臺模式連接的,所以很少會有界面的。現(xiàn)在我們要寫有界面的程序,所以要選Windows(窗口)模式了。我們寫入以下代碼,并按照上面說的方法去做,看看結(jié)果include int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nShowCmd){ MessageBox(NULL,WinMain創(chuàng)建的窗口程序,WinMain,MB_OK)。 return 0。}結(jié)果如下圖:與第一節(jié)中的這段代碼代碼比較下include “”void main(){ MessageBox(NULL, Hello World!,我的第一個窗口程序,MB_OK)。}兩者比較下,后者多了個cmd窗口。可見用main寫的并沒有完全脫離命令行呀。所以以后我們寫窗口程序就用winmain了。好了,轉(zhuǎn)過來,我們來看看WinMain()函數(shù),其中有4個參數(shù)先看下解釋(看不明白得先看完):hInstance:應(yīng)用程序當前事例的句柄。hPrelnstance:應(yīng)用程序的先事例的句柄。對于同一個程序打開兩次,出現(xiàn)兩個窗口第一次打開的窗口就是先前實例的窗口。對于一個32的位程序,該參數(shù)總為NULL。lpCmdLine:指向應(yīng)用程序命令行的空字符串的指針,不包括函數(shù)名。獲得整個命令行,參看GetCommandLine。nCmdShow:指明窗口如何顯示(是隱藏還是顯示,有沒有最大化按鈕之類的)。取值可以參考MSDN這里我相信有一個詞大家好應(yīng)該比較陌生,句柄(HANDLE)是吧。下面我就來簡單的說下句柄其實就是Windows系統(tǒng)中一個東西的唯一標識。就是系統(tǒng)中有很多運行的程序或者資源之類的,為了更好的管理使用,Windows系統(tǒng)給它們每人一個ID一樣。懂得網(wǎng)頁制作的人應(yīng)該知道網(wǎng)頁中各個元素的ID吧,網(wǎng)頁的ID如果重復(fù)話可能出現(xiàn)錯誤。那么系統(tǒng)的句柄會不會有相同的,那是肯定不會有的了,就和我們的學(xué)號一樣,系統(tǒng)自動分配每一個模塊的句柄,是不會相同的了。對于句柄大家可以先這樣理解著,不用一下子搞懂得。以后學(xué)著學(xué)著就明白了。估計大家對那幾個參數(shù)的類型改犯迷糊了吧。其實那幾個類型,并不是什么新類型,都是Windows開發(fā)人員為了自己和他人編程方便,同過基本的C語言語法定義一種新的結(jié)構(gòu)體,或者是共同體,再者就是枚舉類型。我知道結(jié)構(gòu)體、共同體和枚舉類型,很多老師是沒有講到的,因為在書的后邊,很多教C的,又是很垃圾的老師,所以不會講那么快的。其實結(jié)構(gòu)體這些數(shù)據(jù)類型,就是通過我們常用的字符、整型、浮點等數(shù)據(jù)類型構(gòu)造一個比較復(fù)雜的類型而已,舉個例子,就是我們知道C沒有一個數(shù)據(jù)類型可以描述一個人吧,那么我構(gòu)造一個是不是很方便我們編程呢。我們可以這樣構(gòu)造一個struct People{ int age。//年齡 char sex[2]。//性別 int height。//身高……}我們這樣定義以后就可以在我們以后的程序中利用這個數(shù)據(jù)類型了,People zhangsan。這樣可以方便完成很多工作。所以結(jié)構(gòu)體是很簡單的,還有其他的復(fù)雜數(shù)據(jù)類型也是很簡單的,都是有常用的簡單的類型來結(jié)合到一起構(gòu)造一個復(fù)雜的而已。這和JAVA定義類是很相似的,java定義個人類,不是可以這樣的public class People{ public int age。 public string sex。 public height。 ……} 看起來都差不多,而且用法也很相像。唯一的差別其實就是類可以有方法,而結(jié)構(gòu)體是沒有的(經(jīng)過特殊處理也是可以的,這里不用考慮)。上面是為了讓大家了解下復(fù)雜數(shù)據(jù)類型的定義,羅嗦了一大堆。下面來看下WinMain中第一個參數(shù)的類型HINSTANCE這個只是個結(jié)構(gòu)體而已,實際上和HANDLE這個類型差不多,但是有一點差別,而HANDLE是這樣typedef PVOID HANDLE。定義的,PVOID是什么呢,我們來看下typedef void *PVOID。說明PVOID是一個指針,初始指向空(void)。因此可以知道句柄也是個指針而已。看著這么復(fù)雜原來也只是指針。這些都可以在微軟的msdn上查得到的,而且很詳細的那個第二個LPSTR 根據(jù)字面上的意思就知道是字符串類型了。查一查果然是。大家一定要利用好msdn,很有用的。本節(jié)就到此結(jié)束了,主要是說明了一個WinMain函數(shù)和結(jié)構(gòu)體的事情,東西也不算太多,大家應(yīng)該能接受得了吧。下節(jié)就來點復(fù)雜點深點的東西,希望大家做好心理準備。 窗口程序的編寫在來啰嗦之前,希望大家能夠做好準備,這一節(jié)知識有點多,內(nèi)容有點長。但愿大家能夠一口氣讀完,如果一口氣讀不完,那就換口氣接著讀。 上節(jié)中我們用MessageBox()就實現(xiàn)了一個真正的窗口。MessageBox()中的原型如下:Int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)。參數(shù)解釋hWnd 所屬對話框所屬窗口的句柄,如果是NULL,則此對話框不屬于任何一個窗口。lpText 對話框窗口的顯示內(nèi)容。lpCaption 對話框窗口的標題。uType 對話框的樣式和動作(像是確定按鈕,還是取消按鈕就是設(shè)置這里的)關(guān)于這個函數(shù)的細節(jié)可以看這里().aspx 到此為止,你也算是會了窗口程序的編寫,但只是一個開始,不過這已經(jīng)很好,可能會讓你感覺到了C的魅力,也可能會稍微解點C語言能干什么的疑惑。在開始寫代碼之前,我有必要把細節(jié)和原理先說明下。Windows下一個窗口創(chuàng)建的過程有以下幾個步驟:1. 程序創(chuàng)建一個窗口,首先要向Windows系統(tǒng)注冊一個窗口類wndclassex,其實就是定義一個變量,變量的類型是WNDCLASSEX(結(jié)構(gòu)體)。該結(jié)構(gòu)體的定義與介紹看這里(().aspx),typedef struct { UINTcbSize。 UINTstyle。 WNDPROClpfnWndProc。 intcbClsExtra。 intcbWndExtra。 HINSTANCEhInstance。 HICONhIcon。 HCURSORhCursor。 HBRUSHhbrBackground。 LPCTSTRlpszMenuName。 LPCTSTRlpszClassName。 HICONhIconSm。} WNDCLASSEX, *PWNDCLASSEX。成員介紹 cbSize 值為sizeof(WNDCLASSEX),在調(diào)用GetClassInfoEx前必須要先設(shè)置它值。 style 窗口類的樣式,它的值可以是窗口樣式值的任意組合。 可以有以下的值lpfnWndProc 指向窗口處理函數(shù)(回調(diào)函數(shù))。處理窗口事件,像單擊鼠標
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1