C++和MFC数据类型

c++常见数据类型

类 型		    字节数
bool			1
char			1
wchar_t 		2	(宽字符类型,存储Unicode代码值.用法wchart_t letter = L'a')
short			2
unsigned short 		2	(unsigned 表示无符号,只能取非负数.unsigned short num = 123U ; //数字后面的U可加可不加)
int			4	(整形默认为int,long型需在后加L,如long lNumber = 123L; //L可加可不加)
unsigned int		4	(可简写为unsigned)
long			4	(貌似不同的编译器中不一样,有时会是8,偶也不太确定)
__int64			8
unsigned long		4
float			4
double			8
long double		8 	(有些地方貌似是12)



MFC与C++对应的是

MFC类型	    C++的对应类型
NULL		0
VOID		void
BOOL		bool
CHAR		char
CCHAR		char
UCHAR		unsigned char
BYTE		unsigned char
WCHAR		wchar_t
_TCHAR		wchar_t
SHORT		short
WORD		unsigned short 
USHORT		unsigned short 
INT		int
UINT            unsigned int
LONG		long
DWORD		unsigned long
ULONG		unsigned long
LONGLONG	__int64
ULONGLONG	unsigned __int64
FLOAT		float
DOUBLE		double



MFC指针类型

注意:据说far ,near等关键字在16位的系统上有用处,在32位上没啥用处.

数据类型		含义
LPVOID			typedef void far *
LPCVOID			typedef CONST void far *
PWSTR , LPWSTR		__nullterminated WCHAR *
PCWSTR ,LPCSWTR		__nullterminated CONST WCHAR *
PTSTR , LPTSTR		LPWSTR
PCTSTR ,LPCTSTR		LPCWSTR
BSTR			wchar_t字符指针.原因: 1.typedef OLECHAR *BSTR    2.typedef WCHAR OLECHAR  3.typedef  wchar_t  WCHAR
PSTR,LPSTR		 __nullterminated CHAR *
PCSTR ,LPCSTR		typedef __nullterminated CONST CHAR *
LPCRECT			typedef RECT FAR*
HANDLE			typedef void*
HFILE			typedef int
规律:貌似前面加不加L都没啥区别.然后P自然就表示指针,C表示是指向常量的指针.加W表示是宽字符指针
LPTSTR 如果在unicode中表示LPWSTR,否则表示LPSTR
LPCTSTR 如果在unicode中表示LPCWSTR,否则表示LPCSTR

Windows句柄类型

HANDLE32位的无符号整数,用于标识

窗口句柄 HWND
实例句柄 HINSTANCE
光标句柄 HCURSOR
图标句柄 HICON
位图句柄 HBITMAP
菜单句柄 HMENU
设备描述句柄 HDC
钢笔句柄 HPEN
画刷句柄 HBRUSH
字体句柄 HFONT
文件句柄 HFILE


64位指针问题

define _W64   __w64

#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
typedef __int64 LONG_PTR, *PLONG_PTR;
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
#define __int3264 __int64

#else
typedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
typedef _W64 long LONG_PTR, *PLONG_PTR;
typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
#define __int3264     __int32

#endif 

typedef LONG_PTR   LPARAM;
typedef LONG_PTR   LRESULT;
typedef UINT_PTR WPARAM; 

上面这一堆都是微软在宏中定义的.我们用的时候只要用到LPARAM    ,LRESULT ,  WPARAM


原文:http://blog.csdn.net/weiwenhp/article/details/6746719

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值