MFC中自定义的数据类型对照表

来源:互联网 发布:mac上parallels怎么用 编辑:程序博客网 时间:2024/05/01 16:47

一.MFC中自定义的数据类型对照表

数据类型

意义

FAR

对应于far

NEAR

对应于near

CONST

对应于const

UINT

32位无符号整型,对应于unsigned int

BYTE

8位无符号整型,对应于unsigned char

WORD

16位无符号整型,对应于unsigned short int

DWORD

32位无符号长整型,对应于unsigned long int

SHORT

短整型

LONG

32位长整型,对应于long

LONGLONG

64位长整型

FLOAT

浮点型,对应于float

BOOL

Boolean值(TRUE or FALSE1 0

CHAR

Windows字符

VOID

任意类型

BSTR

32位字符指针

LPCSTR

32位字符串指针,指向一个常数字符串

LPSTR

32位字符串指针

LPCTSTR

32位字符串指针,指向一个常数字符串,用于移植到Unicode

LPTSTR

32位字符串指针,用于移植到Unicode

LPVOID

32位指针,指向一个未定义类型的数据

LPARAM

32位消息参数,作为窗口函数或回调函数(call back)的参数

LPRESULT

32位数值,作为窗口函数或回调函数的返回值

WPARAM

16位或32位数值,作为窗口函数或回调函数的参数

COLORREF

32位数值,代表一个颜色值

PROC

指向回调函数的指针

WNDPROC

32位指针,指向一个窗口函数

HANDLE

对象句柄,其他还有HPENHWNDHCURSORHDCHFILE

LPCRECT

32位指针,指向一个RECT结构的常量

POSITION

一个数值,代表collection对象(例如数组或链表)中的元素位置,常使用于MFC collection classes

 

 

二.MFC/windows基本数据类型的定义

windef.h

Abstract:Basic Windows Type Definitions included in windows.h

winnt.h  

Abstract:This module defines the 32-Bit Windows types and constants that are

defined by NT, but exposed through the Win32 API.

afx.h

Abstract:This is a part of the Microsoft Foundation Classes C++ library.

#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应用中的32位值windef.h

//长整型typedef long

typedef unsigned long       ULONG;    windef.h

typedef unsigned long       DWORD;    windef.h

typedef DWORD               COLORREF; windef.h

typedef long                LONG;     winnt.h

typedef __int64             LONGLONG; winnt.h

typedef unsigned __int64    ULONGLONG; winnt.h

typedef ULONGLONG           DWORDLONG; winnt.h

//浮点型

typedef float               FLOAT;     windef.h

typedef double              DOUBLE;    wtypes.h

//字符类型typedef char

typedef char                CHAR/CCHAR; winnt.h

typedef unsigned char       UCHAR;      windef.h

typedef unsigned char       BYTE;       windef.h

    typedef wchar_t             WCHAR; 声明一个16位的UNICODE字符,用来表示世界上所有已知的书写语言的符号winnt.h

typedef WCHAR               TCHAR, *PTCHAR; winnt.h

//指向字符串的指针类型LP*

/*以下为winnt.h的部分内容*/

// UNICODE (Wide Character) types

 

typedef wchar_t WCHAR;    // wc,   16-bit UNICODE character

typedef __nullterminated WCHAR *NWPSTR, *LPWSTR, *PWSTR;

typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;

// ANSI (Multi-byte Character) types

typedef CHAR *PCHAR, *LPCH, *PCH;

typedef __nullterminated CHAR *NPSTR, *LPSTR, *PSTR;

指向Windows字符串(以空字符结束)32指针char*

typedef __nullterminated CONST CHAR *LPCSTR, *PCSTR;

指向Windows常字符串(以空字符结束)32指针const   char*

// Neutral ANSI/UNICODE types and macros

#ifdef  UNICODE                     // r_winnt

#ifndef _TCHAR_DEFINED

typedef WCHAR TCHAR, *PTCHAR;

typedef WCHAR TBYTE , *PTBYTE ;

#define _TCHAR_DEFINED

#endif /* !_TCHAR_DEFINED */

typedef LPWSTR PTSTR, LPTSTR;

指向Windows字符串(以空字符结束)32指针,用于移植到双字节字符集

LPTSTR   For   Unicode   platforms,it   is   LPWSTR,For   ANSI   and  DBCS   platforms,it   is   LPSTR 

typedef LPCWSTR            PCTSTR, LPCTSTR;

指向Windows常字符串(以空字符结束)32指针const   char* ,用于移植到双字节字符集

LPCTSTR For   Unicode   platforms,it   is   LPCWSTR,For   ANSI   and   DBCS   platforms,it   is   LPCSTR  

typedef LPWSTR LP;

#define __TEXT(quote) L##quote      // r_winnt 

/*以上为winnt.h的部分内容*/

typedef WCHAR OLECHAR;                        wtypes.h

typedef /* [wire_marshal] */ OLECHAR *BSTR;   unsigned   short*  wtypes.h

//函数参数、返回值类型

typedef UINT_PTR            WPARAM; 窗口函数或callback函数的一个参数Win16中是16-bitWin32中是32-bit windef.h

typedef LONG_PTR            LPARAM; 32位窗口函数或callback函数的一个参数windef.h

typedef LONG_PTR            LRESULT; 32位作为窗口函数或callback函数的返回值windef.h

//指向函数的指针类型__stdcall

typedef int (WINAPI *PROC)();PROC指向回调函数的指针

typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);

WNDPROC指向在应用程序中定义的窗口过程的指针

#define CALLBACK    __stdcall   windef.h

#define WINAPI      __stdcall   windef.h

#define WINAPIV     __cdecl     windef.h

#define APIENTRY    WINAPI      windef.h

#define APIPRIVATE  __stdcall   windef.h

#define PASCAL      __stdcall   windef.h

typedef void far            *LPVOID;  指向任意类型的指针windef.h

//Windows句柄类HANDLE32位的无符号整数,用于标识

窗口句柄    HWND   

实例句柄    HINSTANCE 

光标句柄    HCURSOR 

图标句柄    HICON 

位图句柄    HBITMAP  

菜单句柄    HMENU    

设备描述句柄 HDC   

钢笔句柄    HPEN     

画刷句柄    HBRUSH   

字体句柄    HFONT   

文件句柄    HFILE

原创粉丝点击