




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Windows程序設計系列
基礎知識作者:李星華綱目代碼規范1入口函數2Win32API簡介3MSDN的應用42代碼規范3代碼規范良好的編程風格是提高程序可靠性非常重要的手段,也是大型項目多人合作開發的技術基礎。通過規范定義來避免不好的編程風格,增強程序的可讀性,便于自己和他人理解。代碼規范,針對于不同的企業來說各不相同,追其根源,都源于匈牙利命名法。4代碼規范-變量命名變量命名原則:變量名=屬性+類型+對象描述,其中每一對象的名稱都要求有明確含義,可以取對象名字全稱或名字的一部分。命名要基于容易記憶容易理解的原則。保證名字的連貫性是非常重要的。5代碼規范-變量命名6代碼規范-變量命名命名必須具有實際的意義,形式為xMaxValue,x由數據類型或屬性部分組成(如果x為整型,變量命名為:iMaxValue),Max、Value表示連續意義字符串(由描述部分確定),如果連續意義字符串有多個,則每個具有意義的字符串,首字母需大寫(像iMaxValue中的“M”與“V”)。m_類成員變量m_iVal,m_bFlagg_全局變量g_iMsg,g_bFlags_靜態變量s_iCount,s_bFlag局部變量中可采用如下幾個通用變量:iTemp,iResult,i,j(一般用于循環變量)。7代碼規范-常量命名和宏定義常量和宏定義必須具有一定的實際意義:常量和宏定義必須全部以大寫字母來撰寫,中間可根據意義的連續性用下劃線連接,每一條定義的右側必須在24個位置處有一簡單的注釋,說明其作用;資源名字定義格式:菜單:IDM_XX或者CM_XX位圖:IDB_XX對話框:IDD_XX字符串:IDS_XX8代碼規范-函數命名第一個字母必須使用大寫字母,要求用大小寫字母組合規范函數命名,必要時可用下劃線間隔,示例如下:intGetValue();void*Word_GetApp();9代碼規范-結構體命結構體類型命名必須全部用大寫字母,原則上前面以下劃線開始;結構體變量命名必須用大小寫字母組合,第一個字母必須使用大寫字母,必要時可用下劃線間隔。全局數據定義只需注意其用途。10代碼規范-結構體命typedefstruct{
charszProductName[20];
charszAuthor[20];
charszReleaseDate[16];
charszVersion[10];
unsignedlongMaxTables;
unsignedlongUsedTables;}DBS_DATABASE;DBS_DATABASEGdataBase;11代碼規范-控件的命名用小寫前綴表示類別:fm窗口cmd按鈕cob
combo,下拉式列表框txt文本輸入框lab
labal,標簽img
image,圖象pic
picturegrd
Grid,網格scr滾動條lst列表框frm
fram12代碼規范-文件頭的注釋模板//*****************************************************************************// FILE : Demo_09.h//*****************************************************************************// POWER : Copyright(c)2012forXXX.// AUTHOR : 2012-2-78:37Createbylixinghuaforfunctions.// VERSION : V1.0.0.1// NOTE : 此文件中含有XXX類,各類之間的主次關系,主要功能,// 或潛在的問題。以及全局變量或函數 的作用。//*****************************************************************************//13代碼規范-文件頭的注釋模板每行字符不要超出80個字符(“/”加上“*”的總長度為80個字符;“FILE”為文件名;“POWER”為版權信息,為固定模式無需修改;“AUTHOR”為作者信息,需要時間的寫法;“VERSION”為版本信息,版本說明見“引用四:關于版本控制”;“NOTE”為本文件中存在的程序功能進行說明。14代碼規范-類的注釋模板//=============================================================================// NAME
:
XX類//=============================================================================//
LIST
:
void//
AUTHOR
:
2012-2-611:18Createbylixinghuaforfunctions.// VERSION : V1.0.0.1//
NOTE :
類的使用說明,即主要對外接口(函數)以及主要功能和潛在問題。//=============================================================================//15代碼規范-類的注釋模板每行字符不要超出80個字符(“/”加上“=”的總長度為80個字符;“NAME”為類的名稱;“LIST”為實現的內部方法(函數)列表,并進行說明;“AUTHOR”為作者信息,需要時間的寫法;“VERSION”為版本信息,版本說明見“引用四:關于版本控制”;“NOTE”為本文件中存在的程序功能進行說明。16代碼規范-函數頭的注釋模板//-----------------------------------------------------------------------------// FUNC : XX函數//-----------------------------------------------------------------------------// IN : 變量1,變量1功能的說明;// 變量2,變量2功能的說明;// 變量n,變量n功能的說明;// OUT : void// RETURN : void// AUTHOR : 2012-2-611:18Createbylixinghuaforfunctions.// NOTE : 此函數實現了XX功能,其中調用了XX函數。//-----------------------------------------------------------------------------//17代碼規范-函數頭的注釋模板每行字符不要超出80個字符(“/”加上“-”的總長度是80個字符;“FUNC”為函數的名稱;“IN”為輸入的參數;“OUT”為在函數內部的輸出信息內容,即函數參數作為返回值的說明;“RETURN”函數的返回值(如:函數成功返回TRUE,否則返回FALSE。);“AUTHOR”為作者信息,需要時間的寫法;
“NOTE”為函數功能的描述,其中包括:功能描述、全局變量描述以及調用模塊。18代碼規范-關于版本控制版本 :V1.0.0.1其中V1.0.0.1
紅色1表示,每修復一處Bug,在原有數值上累加一次。其中V1.0.0.1紅色0表示,添加或刪除掉某些功能(函數或類),在原有數值上累加一次。其中V1.0.0.1紅色0表示,每維護一次程序,在原有數值上累加一次。其中V1.0.0.1紅色1表示,每一次系統整體的更新,包括整個功能甚至需求的變化更新,在原有數值上累加一次。例如V2.20.15.80表示整體需求或框架升級過2次,維護過20次,共添加或刪除功能15次,累計修改80次Bug。19入口函數20Windows數據類型C數據類型Windows類型char
CHARunsignedchar
BYTEshort
SHORTunsignedshort
WORDint
INTlong
LONGunsignedlong
DWORD21Windows數據類型C數據類型Windows類型
char*
LPSTR,PSTR
constchar*
LPCSTR,PCSTR
void
VOID
void*
LPVOID22HINSTANCEHWNDHANDLEHPENHBRUSHHBITMAPHFONTHDCHRESOURCEHCURSOR……Windows新增數據類型:句柄類型**23RECT《=》struct_RECT{intleft,inttop,intright,intbottom}POINT《=》struct_POINT{intx,inty}SIZE《=》struct_SIZE{intcx,intcy}……Windows新增數據類型:結構體**24C語言入口函數#include<stdio.h>intmain(){printf(“HelloWorld”);}25C語言入口函數如下程序會有什么樣的結果?#include<stdio.h>intmain(){for(inti=0;i<argc;++i){printf(“%s”,argv[i]);}}26C語言入口函數voidmain()intmain(intargc,char*argv[])argc作用是什么?Argv[]作用是什么?argc是命令行總的參數個數;argv[]是argc個參數,其中第0個參數是程序的全名,以后的參數是命令行后面跟的用戶輸入的參數。
27C語言入口函數例如
dir
/w
/p
c:\windowsargc
=
4argv[0]
=
dirargv[1]
=
/wargv[2]
=
/pargv[3]
=
c:\windows28Windows入口函數int
APIENTRY
WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow){
MessageBox(NULL,”你好”,”警告”,MB_OK);}29APIENTRY編譯器用來識別程序入口函數的標志。
30HINSTANCE-實例句柄句柄,是整個windows編程的基礎,一個句柄是指使用的一個唯一的整數值,是指一個四字節長的數值,用于標志應用程序中的不同對象和同類對象中的不同的實例,諸如,一個窗口,按鈕,圖標,滾動條,輸出設備,控件或者文件等。應用程序能夠通過句柄訪問相應的對象的信息。句柄不是一個指針,程序不能利用它句柄來直接閱讀文件中的信息。31HINSTANCE-實例句柄句柄在Windows中使用非常頻繁,它通常是一個32位的整數,代表著一個具體對象。句柄就像每位同學的學號一樣,唯一標識著窗口。32HINSTANCE-實例句柄HINSTANCEhInstance進程的實例句柄,在本程序中,唯一標識進程。HINSTANCEhPrevInstance指向應用程序的前一個進程句柄,在32操作系統該參數為NULL,該參數僅僅被用于16位操作系統。33命令行參數LPSTRlpCmdLine命令行緩沖區,不包括程序的名字。不難猜出,如下代碼輸出什么吧!?MessageBox(NULL,lpCmdLine,“溫馨提示”,MB_OK);34窗口顯示狀態intnCmdShow窗口是否顯示標志SW_HIDESW_SHOW……35參數意義第一個參數hInstance是一個唯一的數值或句柄。它與當前程序相關。第二個參數hPrevInstance只對16位Windows是重要的。而在Windows95和WindowsNT中這兩個參數是沒有意義的第三個參數lpCmdLine是一個字符串,它包含了傳給程序的任何參數。這個參數的類型LPSTR是Windows中一種寫法,表示一個指向字符串的32位指針。第四個參數nCmdShow指明程序開始運行的狀態是正常狀態還是最大化狀態或最小化狀態。36WindowsAPI簡介37什么是APIAPI:ApplicationProgrammingInterface操作系統提供給開發者的應用程序編程接口。用戶使用該接口可以調動操作系統資源,實現自己的應用程序的功能。使用時:必須包含Windows.h頭文件。38API簡介39API簡介WindowsAPI是在安裝完操作系統之后,就已經存在了,它是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體育休閑廣場項目初步設計評估及景觀設計報告
- 藥品營銷團隊管理制度
- 藥品門店日常管理制度
- 藥店醫療器材管理制度
- 藥店離職衛生管理制度
- 菜肴加工衛生管理制度
- 設備團隊人員管理制度
- 設備工具耗材管理制度
- 設備機房值班管理制度
- 設備電源安全管理制度
- 區畜牧局十五五總結及十五五規劃
- 2025年普通高等學校招生全國統一考試(全國I卷英語)及答案
- 中國鐵塔筆試題目及答案
- 銀行支行安全防范教育培訓制度
- 招投標員測試題及答案
- 工廠顏色標識管理制度
- 校園電腦維修團創業項目計劃書(正式)
- 租房學位合同協議書范本
- JG/T 368-2012鋼筋桁架樓承板
- 艾梅乙考試試題及答案
- 合肥市公安局招聘警務輔助人員考試真題2024
評論
0/150
提交評論