匈牙利命名法——命名規範(知道這些再看Windows程序就輕鬆多了)

匈牙利命名法
著名的命名規則當推Microsoft公司的"匈牙利"法,該命名規則的主要思想是"在變量和函數名中加入前綴以增進人們對程序的理解"。例如全部的字符變量均以ch爲前綴,如果指針變量則追加前綴p。若是一個變量由ppch開頭,則代表它是指向字符指針的指針。

函數

MFC、句柄、控件及結構的命名規範 
工具

Windows類型 樣本變量 MFC 樣本變量
HWND hWnd; CWnd* pWnd;
HDLG hDlg; CDialog* pDlg;
HDC hDC; CDC* pDC;
HGDIOBJ hGdiObj; CGdiObject* pGdiObj;
HPEN hPen; CPen* pPen;
HBRUSH hBrush; CBrush* pBrush;
HFONT  hFont;  CFont* pFont;
HBITMAP  hBitmap; CBitmap* pBitmap;
HPALETTE  hPaltte; CPalette* pPalette;
HRGN  hRgn; CRgn* pRgn;
HMENU  hMenu; CMenu* pMenu;
HWND  hCtl; CState*  pState;
HWND  hCtl; CButton* pButton;
HWND  hCtl; CEdit* pEdit;
HWND  hCtl; CListBox* pListBox;
HWND  hCtl; CComboBox* pComboBox;
HWND  hCtl; CScrollBar* pScrollBar;
HSZ  hszStr; CString  pStr;
POINT  pt; CPoint  pt;
SIZE  size; CSize  size;
RECT  rect; CRect  rect;

 

通常前綴命名規範 
spa

前綴 類型 實例
C 類或結構 CDocument,CPrintInfo
m_ 成員變量 m_pDoc,m_nCustomers

 

變量命名規範 操作系統

前綴 類型 描述 實例
ch char 8位字符 chGrade
ch  TCHAR 若是_UNICODE定義,則爲16位字符 chName
b BOOL 布爾值 bEnable
int 整型(其大小依賴於操做系統) nLength
UINT  無符號值(其大小依賴於操做系統) nHeight
WORD  16位無符號值 wPos
LONG  32位有符號整型 lOffset
dw  DWORD  32位無符號整型  dwRange
指針 pDoc
lp  FAR*  遠指針  lpszName
lpsz  LPSTR  32位字符串指針 lpszName
lpsz  LPCSTR  32位常量字符串指針 lpszName
lpsz  LPCTSTR  若是_UNICODE定義,則爲32位常量字符串指針 lpszName
handle  Windows對象句柄 hWnd
lpfn  callback 指向CALLBACK函數的遠指針 

?指針

 

應用程序符號命名規範 
調試

前綴 符號類型 實例 範圍
IDR_  不一樣類型的多個資源共享標識 IDR_MAIINFRAME 1~0x6FFF
IDD_ 對話框資源 IDD_SPELL_CHECK  1~0x6FFF
HIDD_ 對話框資源的Help上下文 HIDD_SPELL_CHECK  0x20001~0x26FF
IDB_  位圖資源 IDB_COMPANY_LOGO  1~0x6FFF
IDC_ 光標資源 IDC_PENCIL  1~0x6FFF
IDI_ 圖標資源 IDI_NOTEPAD  1~0x6FFF
ID_ 來自菜單項或工具欄的命令 ID_TOOLS_SPELLING  0x8000~0xDFFF
HID_ 命令Help上下文 HID_TOOLS_SPELLING  0x18000~0x1DFFF
IDP_ 消息框提示 IDP_INVALID_PARTNO  8~0xDEEF
HIDP_ 消息框Help上下文 HIDP_INVALID_PARTNO  0x30008~0x3DEFF
IDS_ 串資源 IDS_COPYRIGHT  1~0x7EEF
IDC_ 對話框內的控件 IDC_RECALC  8~0xDEEF

 

Microsoft MFC宏命名規範 code

名稱 類型
_AFXDLL 惟一的動態鏈接庫(Dynamic Link Library,DLL)版本
_ALPHA 僅編譯DEC Alpha處理器
_DEBUG 包括診斷的調試版本
_MBCS 編譯多字節字符集
_UNICODE 在一個應用程序中打開Unicode
AFXAPI  MFC提供的函數
CALLBACK 經過指針回調的函數 

 

庫標識符命名法 
對象

標識符 值和含義
ANSI(N)或Unicode(U)
調試或發行:D = 調試;忽略標識符爲發行。

 

靜態庫版本命名規範 
資源

描述
NAFXCWD.LIB 調試版本:MFC靜態鏈接庫
NAFXCW.LIB 發行版本:MFC靜態鏈接庫
UAFXCWD.LIB 調試版本:具備Unicode支持的MFC靜態鏈接庫
UAFXCW.LIB 發行版本:具備Unicode支持的MFC靜態鏈接庫
 
 
動態鏈接庫命名規範  
名稱 類型
_AFXDLL 惟一的動態鏈接庫(DLL)版本
WINAPI  Windows所提供的函數

 


 

Windows.h中新的命名規範
類型 定義描述
WINAPI 使用在API聲明中的FAR PASCAL位置,若是正在編寫一個具備導出API人口點的DLL,則能夠在本身的API中使用該類型
CALLBACK 使用在應用程序回叫例程,如窗口和對話框過程當中的FAR PASCAL的位置
LPCSTR 與LPSTR相同,只是LPCSTR用於只讀串指針,其定義相似(const char FAR*)
UINT 可移植的無符號整型類型,其大小由主機環境決定(對於Windows NT和Windows 9x爲32位);它是unsigned int的同義詞
LRESULT 窗口程序返回值的類型
LPARAM 聲明lParam所使用的類型,lParam是窗口程序的第四個參數
WPARAM 聲明wParam所使用的類型,wParam是窗口程序的第三個參數
LPVOID 通常指針類型,與(void *)相同,能夠用來代替LPSTR 
相關文章
相關標籤/搜索