亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VC++編程技術(shù)與技巧研究

        2015-11-08 05:29:34鐘垣如
        關(guān)鍵詞:編程技術(shù)用戶界面開發(fā)人員

        鐘垣如

        (福建星海通信科技有限公司,福建 福州 300008)

        VC++編程技術(shù)與技巧研究

        鐘垣如

        (福建星海通信科技有限公司,福建福州300008)

        VC++語言是目前較流行的計(jì)算機(jī)編程語言,其處理機(jī)制和封裝功能為編程者提供了極大的方便。本文探討VC++語言的編程特點(diǎn)和方法,給出了VC++多線程編程的相關(guān)技巧。

        VC++語言編程技術(shù)多線程編程技巧

        1 引言

        VC++語言是目前使用范圍最廣的計(jì)算機(jī)高級編程語言,它是在C語言的基礎(chǔ)上演變而來的,也是對C語言的繼承、豐富和發(fā)展。VC++語言的出現(xiàn)為Windows開發(fā)開辟了新的天地,借助ApplicationWizard使得開發(fā)人員擺脫了那些每次必寫的基本代碼,借助ClassWizard和消息映射使得開發(fā)人員擺脫了定義消息處理時(shí)的那種混亂和冗長的代碼段;VC++利用C++中的對象,使得開發(fā)人員可以遠(yuǎn)離系統(tǒng),從而更加接近開發(fā)語言。總之,VC++減少了程序編寫和調(diào)試的工作量,提高了軟件的可復(fù)用性、可擴(kuò)展性,縮短了軟件的開發(fā)周期。

        2 VC++編程方法

        在一般情況下,使用VC++語言進(jìn)行編程時(shí),有2種方法,一是API;二是MFC。在API編程方式下,應(yīng)用程序是由多個(gè)函數(shù)組成的,開發(fā)人員可以用API的參考手冊了解每一個(gè)函數(shù)的功能和使用方法;MFC為開發(fā)人員進(jìn)行編程提供了基本的類庫,可以減少開發(fā)時(shí)的編碼工作量,利用C++語言的繼承和封裝特性,可以輕松進(jìn)行編碼。另外,MFC是可以進(jìn)行移植的,代碼可以從windows 3.1移植到windows 98或者是windows NT等相關(guān)平臺(tái)。

        建立一個(gè)應(yīng)用程序,首先要設(shè)計(jì)用戶界面。開發(fā)人員根據(jù)需求分析的結(jié)果,判定用戶所需要的功能,并根據(jù)用戶的需求設(shè)置相應(yīng)的用戶界面對象。Windows應(yīng)用程序的界面有一些標(biāo)準(zhǔn)的控件,比如菜單、按鈕、列表框和滾動(dòng)條等,開發(fā)人員可以根據(jù)程序的需要進(jìn)行選擇組合,并將它們合理布局在屏幕上。在進(jìn)行界面設(shè)計(jì)時(shí),要從用戶的角度進(jìn)行設(shè)計(jì),做到界面友好,簡潔,以方便用戶使用為基本原則。

        接著就是進(jìn)行代碼實(shí)現(xiàn)了,程序開發(fā)人員可以使用API、MFC類庫或者混合編程。通常情況下使用MFC進(jìn)行編程,因?yàn)镸FC效率高,可以大大減少代碼的編寫量。在使用MFC編程時(shí),編寫的代碼是用來控制用戶界面上的各種元素的,并定制這些元素的外觀特征,除此之外,還要編寫用來響應(yīng)用戶操作和使用這些控制的代碼程序。比如,當(dāng)用戶單擊一個(gè)按鈕時(shí),應(yīng)該有相應(yīng)的代碼來響應(yīng)用戶的操作,也就是通常所說的事件驅(qū)動(dòng)代碼,它構(gòu)成了所有的應(yīng)用程序。

        3 編程技巧

        在VC++編程過程中,如果能掌握一定的編程技巧,則能夠比較容易地實(shí)現(xiàn)編程的過程。在比較簡單的程序中,主要是通過MFC提供的函數(shù)以及新類的產(chǎn)生來執(zhí)行任務(wù),通過對不同性質(zhì)的函數(shù)綜合運(yùn)用,來實(shí)現(xiàn)應(yīng)用程序的功能。在VC++編程過程上,如果涉及到多線程編程,就會(huì)變得比較復(fù)雜,下面主要講解多線程編程的一些技巧。

        MFC有兩類線程,分別是User Interface Thread(用戶界面UI線程)和Worker Thread(工作者線程),兩者的主要區(qū)別在于工作者進(jìn)程沒有消息循環(huán),用戶界面進(jìn)程有自己的消息隊(duì)列和消息循環(huán)。由于工作者進(jìn)程沒有消息機(jī)制,它通常用于執(zhí)行后臺(tái)計(jì)算和維護(hù)任務(wù),比如打印機(jī)后臺(tái)處理程序、冗長的計(jì)算過程等。用戶界面進(jìn)程主要用于處理獨(dú)立于線程之外的用戶輸入、響應(yīng)用戶以及系統(tǒng)產(chǎn)生的各種消息和事件等。用戶界面線程的一個(gè)典型應(yīng)用就是CWinApp類,它是CWinThread類的派生類,提供應(yīng)用程序的主線程,并負(fù)責(zé)處理用戶產(chǎn)生的事件和消息。

        (1)創(chuàng)建線程

        要?jiǎng)?chuàng)建一個(gè)線程,MFC需要調(diào)用全局函數(shù)AfxBeginThread()。無論是工作者線程還是用戶界面線程,都需要指定額外的參數(shù)以修改優(yōu)先級、堆棧大小、創(chuàng)建標(biāo)志和安全特性等。函數(shù)AfxBeginThread返回指向CWinThread類對象的指針。線程的入口函數(shù)聲明如下:

        UINT MyControllingFunction(LPVOID pParam);

        該參數(shù)接收的值將在線程對象創(chuàng)建時(shí)傳遞給構(gòu)造函數(shù),入口函數(shù)將用某種方式解釋該值。它可以是數(shù)量值,或是指向包括多個(gè)參數(shù)的結(jié)構(gòu)的指針,甚至可以忽略。函數(shù)結(jié)束時(shí),應(yīng)返回一個(gè)UINT類型的值,并指明結(jié)束的原因。通常,返回0表明成功,其它值則代表不同的錯(cuò)誤。

        (2)啟動(dòng)線程

        由函數(shù)AfxBeginThread創(chuàng)建并初始化一個(gè)CWinThread類的對象,啟動(dòng)并返回該線程的地址,則線程進(jìn)入運(yùn)行狀態(tài)。下面用簡單的代碼說明怎樣定義一個(gè)入口函數(shù)以及如何在程序的其他部分使用。

        (3)線程同步

        編寫多線程應(yīng)用程序最重要的問題就是線程之間的資源同步訪問,多個(gè)線程在共享資源時(shí)如果發(fā)生訪問沖突,會(huì)產(chǎn)生不可預(yù)知的結(jié)果。MFC提供了一組同步和同步訪問類來解決這個(gè)問題。其中,同步對象包括:CsyncObject(同步對象)、Csemaphore(信號量)、Cmutex(互斥對象)、CcriticalSection(臨界區(qū))和Cevent(事件對象);同步訪問對象包括:CMultiLock和CSingleLock。同步類用于訪問資源時(shí)保證資源的整體性。其中CSyncObject是其他4個(gè)同步類的基類,不直接使用。信號同步類CSemaphore通常用于當(dāng)一個(gè)應(yīng)用程序中同時(shí)有多個(gè)線程訪問一個(gè)資源的情況(例如,應(yīng)用程序允許對同一個(gè)Document有多個(gè)View);事件同步類CEvent通常用于在應(yīng)用程序訪問資源之前應(yīng)用程序必須等待的情況(比如,在數(shù)據(jù)寫進(jìn)一個(gè)文件之前數(shù)據(jù)必須從通信端口得到);互斥同步類CMutex和臨界區(qū)同步類CCriticalSection都是用于保證一個(gè)資源一次只能有一個(gè)線程訪問,二者的不同之處在于前者允許有多個(gè)應(yīng)用程序使用該資源,例如,該資源在一個(gè)DLL當(dāng)中,而后者則不允許對同一個(gè)資源的訪問超出進(jìn)程的范疇,而且使用臨界區(qū)的方式效率比較高。

        4 結(jié)束語

        VC++是建立在Windows平臺(tái)上的一種編程語言,受到很多開發(fā)人員的青睞,但是很多人認(rèn)為VC++入門和編程存在一定的難度。在剛開始接觸VC時(shí),不要急于Windows開發(fā),應(yīng)該進(jìn)行一些字符界面程序的編寫,增加對語言的熟悉程度,同時(shí)也訓(xùn)練自己的思維方式和掌握編程的流程,知悉在編程時(shí)常犯的錯(cuò)誤。實(shí)際上,只要掌握VC++的編程技術(shù)和方法,靈活運(yùn)用VC++的各種特性,特別是利用MFC進(jìn)行開發(fā),就能便捷實(shí)現(xiàn)應(yīng)用程序的功能。

        [1]鄒麗.淺談VC++編程技術(shù)與技巧研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(12):187-189.

        [2]石通.C++語言編程技術(shù)分析[J].電腦編程技巧與維護(hù),2011 (14):19-20+22.

        [3]范晶.在VC++中使用ADO方式對ACCESS數(shù)據(jù)庫進(jìn)行操作[J].廣播電視信息,2014(11):77-78.

        Research on VC++Programming Technology and Skills

        ZHONG Yuan-ru
        (Fujian Xinghai Communication Science And Technology Co.,Ltd.Fuzhou Fujian 300008)

        Language VC++is currently more popular computer programming language,the processing mechanism and the package functionality provides great convenience for the programmer.This paper discusses the programming characteristics and methods of VC++ and gives the relevant skills of VC++multithreaded programming.

        VC++language;programming;multithreaded programming;skills.

        G623.58

        A

        1008-1739(2015)11-71-2

        定稿日期:2015-05-12

        猜你喜歡
        編程技術(shù)用戶界面開發(fā)人員
        自然用戶界面在智能家居系統(tǒng)中的應(yīng)用路徑創(chuàng)新研究:生成式人工智能技術(shù)的調(diào)節(jié)作用
        包裝工程(2023年16期)2023-08-25 11:40:58
        基于CiteSpace的國外用戶界面體驗(yàn)圖譜量化分析
        復(fù)雜零件的數(shù)控加工工藝及編程技術(shù)分析
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        UI用戶界面色彩設(shè)計(jì)研究
        流行色(2017年12期)2017-10-26 03:08:44
        基于計(jì)算機(jī)軟件工程的數(shù)據(jù)庫編程技術(shù)
        C語言編程技術(shù)的分析研究
        JDBC數(shù)據(jù)庫編程技術(shù)
        讓W(xué)indows 10進(jìn)入開發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        后悔了?教你隱藏開發(fā)人員選項(xiàng)
        電腦愛好者(2015年6期)2015-04-03 01:20:56
        天堂av中文在线官网| 小sao货水好多真紧h无码视频| 久久精品免费观看国产| 草草网站影院白丝内射| 青榴社区国产精品| 日本高清成人一区二区三区| 人妻少妇满足中文字幕| 男人扒开添女人下部免费视频 | 久久精品亚洲熟女av蜜謦 | 国产69精品麻豆久久| 亚洲av综合av一区二区三区 | 久久精品爱国产免费久久| 有码中文字幕一区二区| 日本精品一区二区三区在线观看| 夜夜夜夜曰天天天天拍国产| 性生交大全免费看| 国产精品毛片久久久久久l| 中文字幕a区一区三区| 中文字幕亚洲精品在线| 亚洲av无码乱码国产一区二区| 亚洲人成色777777老人头| a级国产精品片在线观看| 国产自拍精品在线视频| 国产内射一级一片内射视频| 特级毛片爽www免费版| av无码天一区二区一三区| 亚洲精品在线观看一区二区| 国产亚洲精品90在线视频| 久久久久亚洲精品无码蜜桃| 亚洲av久久无码精品九九| 免费人成视频网站在线| 亚洲av在线观看播放| 白丝爆浆18禁一区二区三区| 久久精品一区二区三区av| 欧美成人a视频免费专区| 亚洲精品一区二区三区新线路| 日本一区二区三区爆乳| 色婷婷综合久久久久中文| 国产在线天堂av| 精品熟女视频一区二区三区国产| 午夜成人理论福利片|