匈牙利命名法——命名规范(知道这些再看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 ...
随机推荐
- :( Call to a member function Table() on a non-object 错误位置
:( Call to a member function Table() on a non-object 错误位置 $Model不是模板,是你自己先前链接数据库返回的对象...我的是改为$Form
- Phpstorm常用设置
Phpstorm更换主题和字体 1.File -- settings -- Editor -- Colors And Fonts: 2.在右侧窗口中选择Scheme name : 选择一个自己喜欢的主 ...
- Awvs如何扫描需要登录的部分
一个小技巧,可能部分的人习惯了按下一步.所以不大知道.给大家说说哈. 到LOGIN步骤的时候,在Login sequen 新建.然后你懂的了.会新出来一个浏览器,直接登录后一直下一步即可
- C#关键字base
例子: public CustomStroke(SharpType type) :base() { this.type = type; } 这里的CustomStroke继承与基类Stroke类,用关 ...
- C++中new的解说
new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) new int(100);//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 ...
- 【云计算】Docker云平台—Docker基础
Docker云平台系列共三讲,此为第一讲:Docker基础 参考资料: Docker官方文档:https://docs.docker.com/ Docker从入门到实践:https://yeasy.g ...
- ajax:post 400错误
POST http://localhost:8080/purchase/purchase-apply/update.htm 400 (Bad Request) n.ajaxTransport.k.co ...
- codeforces 486B.OR in Matrix 解题报告
题目链接:http://codeforces.com/problemset/problem/486/B 题目意思:给出一个m行n列的矩阵B(每个元素只由0/1组成),问是否可以利用矩阵B,通过一定的运 ...
- Emblog 备忘
emblog换后台:(如admin-->xx) 1.xx目录下的globals.php打开找到替换admin(1) 2.www目录下的t\index.php 中找到替换admin(1) 3.ww ...
- FragmentTabHost+ViewPager实现底部按钮
package com.example.fragmenttabdemo; import java.util.ArrayList; import java.util.List; import andro ...