二、Windows基础数据类型
六、Windows Data Types 简介:
6.1、这些数据类型都是C语言数据类型的再次的进行包装。
6.2、因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义。
6.3、这些数据类型只有在微软的SDK下才能够进行使用。
6.4、为什么是使用纯C的type进行包装:是因为要支持C语言。
6.5、所有的这些types都在<Windows.h>中。
6.6、32位系统下,内存地址值得长度是32位,DWORD_PTR(存储地址值)
如:int num = 10; DWORD_PTR pNum = # //其中pNum是有值的,该值就是地址值。
但是此时的pNum的类型并不是指针,而是unsigned long类型。
所以此时编译器会产生一个警告。
此时需要使用的话就要进行强制转换:*(int*)pNum = 100;
6.7、而在64位中,DWORD_PTR变成了64位。
6.8、LP和P:的这种写法是没有区别的。
6.9、A:表示窄字符。
6.10、T:表示TCHAR, 可变的。
七、Windows Data Types:
7.1、bit。
7.2、byte:8个bit。
7.3、__int8:8bit。
7.4、__int16: 16bit。
7.5、__int32: 32bit。
7.6、__int64: 64bit。
7.7、wchar_t:就是 unsigned short 类型。
typedef unsigned short wchar_t;
7.8、BOOL:1表示TRUE,0表示FALSE、实际上就是一个int类型。
typedef int BOOL, *PBOOL, *LPBOOL;
7.9、BYTE:就是一个unsigned char, 8位的大小。
typedef unsigned char BYTE, *PBYTE, *LPBYTE;
7.10、BOOLEAN:1表示TRUE,0表示FALSE、实际上就是一个BYTE类型。
typedef BYTE BOOLEAN, *PBOOLEAN;
7.11、BSTR:实际上就是一个wchar_t* -> unsigned short*类型。
typedef WCHAR* BSTR;
7.12、CHAR:小写char的typedef。
typedef char CHAR, *PCHAR;
7.13、DOUBLE:小写double的typedef。
typedef double DOUBLE;
7.14、DWORD:实际就是一个 unsigned long 类型。
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
7.15、DWORD_PTR:__int3264随着环境的变化而变化。32为32,64为64。
typedef unsigned __int3264 ULONG_PTR;
typedef ULONG_PTR DWORD_PTR;
7.16、DWORD32:32位。
typedef unsigned int DWORD32;
7.17、DWORD64:64位。
typedef unsigned __int64 DWORD64, *PDWORD64;
7.18、DWORDLONG:
typedef ULONGLONG DWORDLONG, *PDWORDLONG;
7.19、error_status_t:
typedef unsigned long error_status_t;
7.20、FLOAT:小写 float 的typedef。
typedef float FLOAT;
7.21、HANDLE:对象句柄。
typedef void* HANDLE;
7.22、HCALL:实际就是unsigned long 类型。
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
typedef DWORD HCALL;
7.23、HRESULT:
typedef LONG HRESULT;
7.24、INT:小写int 的typedef。
typedef int INT, *LPINT;
7.25、INT8:
typedef signed char INT8;
7.26、INT16:
typedef signed short INT16;
7.27、INT32:
typedef signed int INT32;
7.28、INT64:
typedef signed __int64 INT64;
7.29、LDAP_UDP_HANDLE:
typedef void* LDAP_UDP_HANDLE;
7.30、LMCSTR:实际就是 unsigned short类型。
typedef unsigned short wchar_t;
typedef const wchar_t* LMCSTR;
7.31、LMSTR:实际就是unsigned short 类型。
typedef unsigned short wchar_t;
typedef wchar_t WCHAR;
typedef WCHAR* LMSTR;
7.32、LONG:
typedef long LONG, *PLONG, *LPLONG;
7.33、LONGLONG:64位。
typedef signed __int64 LONGLONG;
7.34、LONG_PTR:
typedef __int3264 LONG_PTR;
7.35、LONG32:
typedef signed int LONG32;
7.35、LONG64:
typedef signed __int64 LONG64;
7.36、LPCSTR:
typedef const char* LPCSTR;
7.37、LPCVOID:
typedef const void* LPCVOID;
7.38、LPCWSTR:
typedef unsigned short wchar_t;
typedef const wchar_t* LPCWSTR;
7.39、LPSTR:
typedef char* PSTR, *LPSTR;
7.40、LPWSTR:
typedef unsigned short wchar_t;
typedef wchar_t* LPWSTR, *PWSTR;
7.41、NET_API_STATUS:
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
typedef DWORD NET_API_STATUS;
7.42、NTSTATUS:
typedef long NTSTATUS;
7.43、QWORD:64位。
typedef unsigned __int64 QWORD;
7.44、RPC_BINDING_HANDLE:
typedef void* RPC_BINDING_HANDLE;
7.45、SHORT:
typedef short SHORT;
7.46、SIZE_T:不同的两个环境下的可变长的类型。
typedef unsigned __int3264 ULONG_PTR;
typedef ULONG_PTR SIZE_T;
7.47、UCHAR:无符号的char类型。
typedef unsigned char UCHAR, *PUCHAR;
7.48、STRING:
typedef unsigned char UCHAR, *PUCHAR;
typedef UCHAR* STRING;
7.49、UINT:
typedef unsigned int UINT;
7.50、UINT8:
typedef unsigned char UINT8;
7.51、UINT16:
typedef unsigned short UINT16;
7.52、UINT32:
typedef unsigned int UINT32;
7.53、UINT64:
typedef unsigned __int64 UINT64;
7.54、ULONG:
typedef unsigned long ULONG, *PULONG;
7.55、ULONG_PTR:
typedef unsigned __int3264 ULONG_PTR;
7.56、ULONG32:
typedef unsigned int ULONG32;
7.56、ULONG64:
typedef unsigned __int64 ULONG64;
7.57、ULONGLONG:
typedef unsigned __int64 ULONGLONG;
7.58、UNICODE:
typedef unsigned short wchar_t;
typedef wchar_t UNICODE;
7.59、USHORT:
typedef unsigned short USHORT;
7.60、VOID:
typedef void VOID, *PVOID, *LPVOID;
7.61、WCHAR:
typedef unsigned short wchar_t;
typedef wchar_t WCHAR, *PWCHAR;
7.62、WORD:
typedef unsigned short WORD, *PWORD, *LPWORD;
7.63、总结:
7.63.1、LPC: L表示long、 P表示point、C表示const;
7.63.2、W:表示宽;
7.63.3、_PTR:都是__int3264: 表示在不同环境下可变类型。
7.63.4、_int64:表示64位。
7.63.5、HANDLE:void*。
7.63.6、WORD和WCHAR和wchar_t一样:unsigned short。
7.63.7、DWORD:unsigned long。
7.63.8、8位char、16位short、32位int、64位_int64。
7.63.9、很多的命名都是有规律可循的。
7.63.10、以上所有的数据类型都是对C原生数据类型进行再包装。
二、Windows基础数据类型的更多相关文章
- day02--Python基础二(基础数据类型)
一.数据与数据类型 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类型 数字(int) 字符串 ...
- python基础二(基础数据类型)
一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...
- 二: python基础数据类型(int,
一.什么是数据类型?2018-12-20 20:57:3õ # (3) num = 0 while num < 10: num += 1 if num == 7: num += 1 # 7执 ...
- C#基础(二)--之数据类型
在第一章我们了解了C#的输入.输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半.在你阅读完本章后,你就有足够的C#知识编写简单的程序了.但还不能使用继 ...
- python变量与基础数据类型
一.什么是变量 变量是什么? 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...
- MySQL数据库~~~~初识、基础数据类型
一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...
- Python_基础数据类型
一,首先介绍一下变量 1. 变量是什么 在Python中,变量的概念基本上和初中代数的方程变量是一致的. 2. 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止 ...
- 【clickhouse专栏】基础数据类型说明
本文是clickhouse专栏第五篇,更多内容请关注本号历史文章! 一.数据类型表 clickhouse内置了很多的column数据类型,可以通过查询system.data_type_families ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
随机推荐
- HTML Socket实现 .NET
HTML5 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等等.虽然现在大家把它捧的很火的样子,但是个人认为它还需要其他平台的支持才能真正的"火起 ...
- Java程序中与MongoDB建立连接~小记
1.Mongo和MongoClient的关系 MongoClient继承自Mongo,使用Mongo也可建立连接,但是需要使用与Mongo适应的MongoOptions,MongoURI等类型. 2. ...
- VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...
- Java Unicode编码 及 Mysql utf8 utf8mb3 utf8mb4 的区别与utf8mb4的过滤
UTF-8简介 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码.它可以用来表示Unicode标准中的任何 ...
- artemplate使用
最近写了一个菜谱展示的网页,其中用到了artemplate模板,关于artemplate的好处就不多说了,直接上干货 1. <script src="js/template-nativ ...
- Dashboard登录成功后 RuntimeError: Unable to create a new session key.
openstack按照官网docs部署horizon后,使用admin账号密码登录,但网页提示未知错误. 查看/var/log/httpd/error_log 提示这个:RuntimeError: U ...
- 想系统的学习一下项目管理,推荐PRINCE2
参加pmp培训,考个pmp证书就足矣应付面试. 个人并不推荐看那些外文原版书籍,我看过一两本,水平与实用性并不是你想象的那么好,除非你是做理论研究,为了发表论文. 另一本就推荐prince2的教材,p ...
- 不忘初心 --- 重读<<The C Programming Language>>
这篇文章应该发布在好几年前,2011年计算机界大师Dennis Ritchie仙逝,那时对大师的映象还停留在大一刚学编程时:Unix的合作开发者,C语言的发明人.通过网上的纪念文章<<Un ...
- Entity Framework细节追踪
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...
- DataTable 转实体
因为Linq的查询功能很强大,所以从数据库中拿到的数据为了处理方便,我都会转换成实体集合List<T>. 开始用的是硬编码的方式,好理解,但通用性极低,下面是控件台中的代码: using ...