六、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 = &num; //其中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基础数据类型的更多相关文章

  1. day02--Python基础二(基础数据类型)

    一.数据与数据类型 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类型 数字(int) 字符串 ...

  2. python基础二(基础数据类型)

    一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...

  3. 二: python基础数据类型(int,

    一.什么是数据类型?2018-12-20   20:57:3õ # (3) num = 0 while num < 10: num += 1 if num == 7: num += 1 # 7执 ...

  4. C#基础(二)--之数据类型

    在第一章我们了解了C#的输入.输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半.在你阅读完本章后,你就有足够的C#知识编写简单的程序了.但还不能使用继 ...

  5. python变量与基础数据类型

    一.什么是变量 变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...

  6. MySQL数据库~~~~初识、基础数据类型

    一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...

  7. Python_基础数据类型

    一,首先介绍一下变量 1. 变量是什么 在Python中,变量的概念基本上和初中代数的方程变量是一致的. 2. 变量命名规则 由数字.字母.下划线组成 不能以数字开头 要具有描述性 要区分大小写 禁止 ...

  8. 【clickhouse专栏】基础数据类型说明

    本文是clickhouse专栏第五篇,更多内容请关注本号历史文章! 一.数据类型表 clickhouse内置了很多的column数据类型,可以通过查询system.data_type_families ...

  9. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

随机推荐

  1. JavaScript 简介及语法语句

    JS脚本语言 全称JavaScript:网页里面使用的脚本语言                      非常强大的语言 基础语法 注释语法    单行注释//    多行注释/**/输出语法     ...

  2. SharePoint 配置传出电子邮件设置

    1. 环境参数说明 A) Windows Server 2012 R2 B) SharePoint 2016 C) 第三方邮件服务器(smtp.3th.com - 有负载均衡,即对应多个IP服务器) ...

  3. 第一章:shiro简介

    1.1 简介 Apache Shiro是java的一个安全框架,相当简单,没有Spring Security功能强大,但是实际工作中大多使用shiro就够了.可以帮助我们完成:认证,授权,加密,会话管 ...

  4. React Native 可以走多远?

    对于大多数APP开发者来说,能够同时开发出Android APP和IOS APP是不是很牛逼,可是它也不是天方夜谭,自从有了一个叫React Native的东西的出现,这一切就变得可以实现了. 那么到 ...

  5. 关于View Link

    当需要表格之间的父子结构的时候需要展示时,这个时候就需要建立View Link来实现Table之间的关联.在建立ViewLink时需要现将JDev关闭然后再进行创建自己需要的ViewLink.

  6. C++实现动态顺序表

    顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构.这样的存储方式使得线性表逻辑上相邻的元素,其在物理存储单元中也是相邻的.只要知道了第一个元素的存 ...

  7. 老李分享:loadrunner的java user脚本开发

    老李分享:loadrunner的java user脚本开发 poptest在性能测试loadrunner的课程里,以web协议为主,同时也讲解其他协议的脚本开发,对于一个性能测试工程师需要掌握一个以上 ...

  8. 手机自动化测试:搭建appium手机自动化测试开发环境

    手机自动化测试:搭建appium手机自动化测试开发环境   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...

  9. 震荡信号Simulink仿真

    1. simulink仿真设计 震荡信号本质是调制信号,可以表示为: u(t)=A*(1+m*cos(Ωt+θ))*cos(ωt+φ)=A*cos (ωt+φ)+ A*m*cos(Ωt+θ)*cos( ...

  10. “this kernel requires an x86-64 CPU, but only detects an i686 CPU, unable to boot” 问题解决

    1. 问题描述:  在Virtual Box上安装 Ubuntu 系统时出现错误(如题),VIrtual Box 上也没有64位操作系统的选项 2.原因分析: (1) 可能 BIOS 的 Virtua ...