2024年4月30日发(作者:)
Win32程序数据类型
下面这些是和Win32程序共同使用的数据类型
BOOL:布尔值,取值为TRUE or FALSE
BSTR:32-bit 字符指针
BYTE:8-bit整数,未带正负号
COLORREF:32-bit数值,代表一个颜色值
DWORD:32-bit整数,未带正负号
LONG:32-bit整数,带正负号
LPARAM:32-bit整数,作为窗口函数或callback函数的一个参
数
LPCSTR:32-bit指针,指向一个常数字符串
LPSTR:32-bit指针,指向一个字符串
LPCTSTR:32-bit指针,指向一个常数字符串,此字符串可以移
植到Unicode和DBCS
LPTSTR:32-bit指针,指向一个字符串,此字符串可以移植到
Unicode和DBCS
LPVOID:32-bit指针,指向一个未指定类型的数据
LPRESULT:32-bit数值,作为窗口函数或callback函数的返回
值
UINT:在Win16中是一个16-bit 未带正负号整数,在Win32中
是一个32-bit 未带正负号整数,WNDPROC:32-bit指针,指向一个
窗口函数WORD:16-bit 整数,未带正负号
WPARAM:窗口函数或callback函数的一个参数,在Win16中
是16-bit,在Win32中是32-bit
下面这些是MFC独特的数据类型
POSITION:一个数值,代表collection对象(例如数组或链表)
中的元素位置,常用于MFC collection classes(即数据处理类,如
CArray)
LPCRECT:32-bit指针,指向一个不变的RECT结构
L表示long指针,这是为了兼容Windows 3.1等16位操作系统
遗留下来的,在win32中以及其他的32为操作系统中,long指针和
near指针及far修饰符都是为了兼容的作用。没有实际意义。
P表示这是一个指针
C表示是一个常量
T在Win32环境中,有一个_T宏,这个宏用来表示你的字符是否
使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,
那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准
的ANSI字符串。
STR表示这个变量是一个字符串。
所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义
改变语义的字符串。
同样,LPCSTR就只能是一个ANSI字符串,在程序中我们大部分
时间要使用带T的类型定义。
LPCTSTR == const TCHAR *
MFC/windows基本数据类型详细介绍
#define FALSE 0 afx.h
#define TRUE 1 afx.h
#define NULL 0 afx.h
typedef void VOID winnt.h
//短整型typedef unsigned short
typedef unsigned short USHORT; windef.h
typedef unsigned short WORD; windef.h
typedef unsigned short wchar_t
typedef short SHORT; winnt.h
//整型typedef int
typedef int BOOL; //取值为TRUE or FALSE windef.h typedef
int INT; windef.h
typedef unsigned int UINT; //定义一个新的Win32数据类型,
它会把一个参数强制转换成Windows3.x应用中的16位值或Win32


发布评论