《MFC初探》之变量类型
来源:互联网 发布:广电网络三合一机顶盒 编辑:程序博客网 时间:2024/06/07 06:47
刚接触MFC编程就出现了让我头大的一件事—-这些变量我咋都不认识。若你也有这种感觉,那这篇博客将会给你一些启发~
在MFC中定义的基本变量
- 首先,所有的变量都被从小写定义成了大写。如:
typedef int BOOL;//TRUE FALSE typedef unsigned char BYTE; typedef float FLOAT; typedef int INT; typedef char CHAR; typedef short SHORT; typedef long LONG; typedef CHAR* PCHAR, LPSTR; //可写的字符指针变量 #ifndef VOID #define VOID void
还有字的定义:
typedef unsigned long DWORD;//双字 typedef unsigned short WORD;//单字
- 所有的无符号变量都加上U来区分。如:
typedef unsigned int UINT;
- 所有的指针类型变量都加上P来区分。如:
typedef FLOAT *PFLOAT; typedef BOOL near *PBOOL; typedef BOOL far *LPBOOL; typedef BYTE near *PBYTE; typedef BYTE far *LPBYTE; typedef int near *PINT; typedef int far *LPINT; typedef WORD near *PWORD; typedef WORD far *LPWORD; typedef long far *LPLONG; typedef DWORD near *PDWORD; typedef DWORD far *LPDWORD; typedef void far *LPVOID; typedef CONST void far *LPCVOID;//near和far是c语言相对古老的的用法,用于声明变量在内存中的远近(以前16位的dos操作系统,最大有64K的内存,紧缺的很~)。
- 所有的常量指针都使用C。如:
typedef CONST void* LPCVOID; typedef CONST CHAR *LPCSTR, *PCSTR;//只读的字符指针变量
结构体类型。主要有三个POINT、SIZE、RECT
typedef struct tagPOINT { LONG x; LONG y; } POINT, *PPOINT, *LPPOINT;//结构体别名 typedef struct tagSIZE { LONG cx; LONG cy; } SIZE, *PSIZE, *LPSIZE; typedef struct tagRECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT, *LPRECT;<p>
</p>…DECLARE_HANDLE (HWND);…#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name<p>3. 最神奇的**句柄类型**。句柄是一种故意隐藏了内容的结构体指针。看一下HWND的声明:
</p>const char * p = “aaa”; //内存中,每个a占有一个字节const char * pc = “中国”;//内存中,每个汉字占有两个字节const wchar_t * pU = L”aa”;//内存中,每个a占有两个字节const wchar_t * pcU = L”中国”;//内存中,每个汉字占有一个字节const TCHAR * s = L”aa”;//这个TCHAR声明时,必须声明成Unicode编码的串/* //修改vs的编码方式为’多字节字符集’后 const TCHAR *s =L”aa”;//这就会报错,因为这时候TCHAR是char类型 const TCHAR *s =”aa”;//不会报错*/可以看到HWND就是结构体的指针,而结构体的内容是unused,(拒绝使用~)。 - HWND 窗口句柄 - HINSTANCE 进程实例句柄 - HCURSOR 光标句柄 - HICON 图标句柄 - HMENU 菜单句柄 - HFONT 字体句柄 - HFILE 文件句柄 - 等4. 最复杂的**字符串指针类型** 首先,谈精简版的历史。很早以前,各国文字都有自己的编码方式,而且每个国家字符的字节也不一样(多字节字符)。后来,拥有了统一的编码方式,统一了编码--Unicode。 vs中创建项目时,默认是Unicode编码的。可以使用**wchar_t**来声明Unicode编码的字符串,而且字符串声明时在前面加上**L**。**TCHAR**是一个怪胎,他是char和wchar_t的自适应版。
0 0
- 《MFC初探》之变量类型
- 初探MFC之校园导航系统
- Javascript变量之变量类型
- Javascript之变量类型
- opnet之变量类型
- PHP之变量类型
- MFC控件关联变量的类型
- MFC 对话框控件和变量类型
- MFC初探
- 初探MFC
- php变量类型之资源变量
- Python学习之变量类型
- JavaScript学习之变量类型
- Python基础之变量类型
- JavaScript之变量类型判断
- PHP基础之变量类型
- shell编程之变量类型
- c++初学之变量类型
- 湖北民族学院OJ 1778 (dfs)之 堆积木
- LeetCode 35. Search Insert Position
- Ajax批量操作数据
- HDU6000
- HDU 2489:Minimal Ratio Tree
- 《MFC初探》之变量类型
- Android游戏开发之游戏框架的搭建
- 商品展示案例
- 简单的实现自定义View画一个钟表
- TortoiseGit记住密码
- Ubuntu 14.04.1安装mysql以及配置
- C++回炉(1)
- 为什么嵌入式C语言编程要有编码规范
- 京东量化第二次线上分享会又来啦