匈牙利命名法——命名规范(知道这些再看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; |
一般前缀命名规范
| 前缀 | 类型 | 实例 |
| C | 类或结构 | CDocument,CPrintInfo |
| m_ | 成员变量 | m_pDoc,m_nCustomers |
变量命名规范
| 前缀 | 类型 | 描述 | 实例 |
| ch | char | 8位字符 | chGrade |
| ch | TCHAR | 如果_UNICODE定义,则为16位字符 | chName |
| b | BOOL | 布尔值 | bEnable |
| n | int | 整型(其大小依赖于操作系统) | nLength |
| n | UINT | 无符号值(其大小依赖于操作系统) | nHeight |
| w | WORD | 16位无符号值 | wPos |
| l | LONG | 32位有符号整型 | lOffset |
| dw | DWORD | 32位无符号整型 | dwRange |
| p | * | 指针 | pDoc |
| lp | FAR* | 远指针 | lpszName |
| lpsz | LPSTR | 32位字符串指针 | lpszName |
| lpsz | LPCSTR | 32位常量字符串指针 | lpszName |
| lpsz | LPCTSTR | 如果_UNICODE定义,则为32位常量字符串指针 | lpszName |
| h | 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宏命名规范
| 名称 | 类型 |
| _AFXDLL | 唯一的动态连接库(Dynamic Link Library,DLL)版本 |
| _ALPHA | 仅编译DEC Alpha处理器 |
| _DEBUG | 包括诊断的调试版本 |
| _MBCS | 编译多字节字符集 |
| _UNICODE | 在一个应用程序中打开Unicode |
| AFXAPI | MFC提供的函数 |
| CALLBACK | 通过指针回调的函数 |
库标识符命名法
| 标识符 | 值和含义 |
| u | ANSI(N)或Unicode(U) |
| d | 调试或发行: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 |
匈牙利命名法——命名规范(知道这些再看Windows程序就轻松多了)的更多相关文章
- 匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法 C#命名规范
匈牙利命名法.骆驼命名法.帕斯卡(pascal)命名法 C#命名规范 一.匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中. Windows 编程中用到的变量(还包括宏)的命名 ...
- C#帕斯卡命名法
帕斯卡命名法 命名规则. 单字之间不以空格断开或 连接号 (-).底线(_)连结,第一个单词首字母采用 大写字母 :后续单词的首字母亦用大写字母,例如:FirstName.LastName.. 每一个 ...
- 匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法
(2008-05-24 13:37:55) 转载▼ 标签: 杂谈 分类: 编程杂文 一.匈牙利命名法: 广泛应用于象Microsoft Windows这样的环境中. Windows 编 ...
- 匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)
一.匈牙利命名法 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) ...
- C++匈牙利命名法
匈牙利命名法 匈牙利命名法是一种编程时的命名规范.基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分.命名要基于容易记忆容易理解的原则.保证 ...
- 命名法:骆驼(Camel)、帕斯卡(pascal)、匈牙利(Hungarian)、下划线(_)
首先欢迎大家到来! 常用的命名法:骆驼(Camel).帕斯卡(pascal).匈牙利(Hungarian).下划线(_) 骆驼:是指混合使用大小写字母来构成变量和函数的名字 帕斯卡:与骆驼命名法类似只 ...
- JavaScript变量命名规则:匈牙利命名法
匈牙利命名法语法 变量名=类型+对象描述 类型指变量的类型 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解. 提示 虽然JavaScript变量表面上没有类型,但是Jav ...
- c++ 请抛弃匈牙利命名法 - 变量命名代码风格的建议。
我只针对c++码农们讲,其他语言不了解不过应该大同小异.曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX). ...
- 匈牙利命名法、Camel命名法与Pascal命名法
Camel命名法:即骆驼式命名法,首字母小写,采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏.Camel命名法有两种形式: 1.混合使用大小写字母,例如runFast 2.单词之间加下划线,例如r ...
随机推荐
- 再论pyquery
发现对于QQ群 空间文件的抓取毫无办法. QQ空间的代码可圈可点: 做了一个js的“客户端”,第一次加载时,将文件的列表信息全部抓取出来,然后基于js进行翻页和排序. 因此,想要抓取js渲染的dom, ...
- sharepoint部件webparth关闭找回的方法
- CSS用Id选择器在本页写样式
<title>静夜思</title><style type="text/css">#red{color:#ff0000; font-weight ...
- Eclipse 项目红色叹号:Build Path Problem
Description Resource Path Location TypeA cycle was detected in the build path of project 'shgl-categ ...
- MySQL数据库备份和还原的常用命令
其实很多情况下mysql备份就是采用了这些命令,例如: mysql导入和导出数据 linux自动定时备份web程序和mysql数据库 备份MySQL数据库的命令 mysqldump -hhostnam ...
- Gym 100851E Easy Problemset (模拟题)
Problem E. Easy ProblemsetInput file: easy.in Output file: easy.outPerhaps one of the hardest problems ...
- 通过百度echarts实现数据图表展示功能
现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...
- Cookie的使用与实现记住用户名案例
学习web开发,使用Cookie是不可避免的,个人感觉Cookie的使用和ASP.NET中的Session非常像,只不过Cookie是保存在客户端,而Session是在服务器端,两者都以记录信息为目的 ...
- NSOperation基本使用
NSOperation简单介绍 a. 是OC语言中基于GCD的面向对象的封装 b. 使用起来比GCD更加简单(面向对象) c. 提供了一些用GCD不好实现的功能 d. 苹果推荐使用,使用NSOper ...
- NEXTDAY
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "com_time ...