Windows编程数据类型概述 C++

9 篇文章 0 订阅
    如果你从来没有接触过windows编程,那么当你第一次看到windows程序的时候,你会晕了,因为满篇的DWORD_PTR 或者诸如 LPRECT一类的标识,所以,弄清这些标识符是有必要的。
    绝大多数的windows程序都是由function或者COM(Component Object Model)组成的,很少的API直接提供C++的class。windows含有很多类型,但是大都定义在WinDef.h中,因此,只要包含这个头文件就ok了。下图给出了主要的数据类型。可以看出,数据额类型存在一定程度的冗余,这主要是因为历史版本的API 造成的。

这里写图片描述

    至于bool类型,它也在WinDef.h中定义的。
#define FALSE    0 
#define TRUE     1
So注意,这里的bool类型是int!说完了基本数据类型,现在介绍一下其他的数据类型。Windows定义了很多指针类型,这些指针类型通常带有P-或者LP-的前缀。例如,LPRECT 是一个指向RECT(代表一个矩阵)的指针。下面三种定义是完全相同的。
RECT*  rect;  // Pointer to a RECT structure.
LPRECT rect;  // The same
PRECT  rect;  // Also the same.
通常,P代表指针(pointer),而LP代表长指针(long pointer)。他们没有很大差别,毕竟都是指针。下面的几种指针类型代表着不同长度的指针类型.。也就是说,32bit的应用中是32bit宽,当一个32bit的程序运行在64位的windows平台上时,这些数据类型仍然是4 byte宽。
•DWORD_PTR
•INT_PTR
•LONG_PTR
•ULONG_PTR
•UINT_PTR
接下来说说string类型,Windows是支持UNICODE的,每一个字符占16bit(宽字符),Visual C++ 编译器支持内置的数据类型wchar_t(宽字符)。 头文件file WinNT.h 也定义了如下类型。
typedef wchar_t WCHAR;
    定义一个宽的字符要在字符前面加上前缀“L”,如下:
wchar_t a = L'a';
wchar_t *str = L"hello";
这是一些其他的和string相关的数据类型。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值