一,常见数据类型
  WORD:               16位无符号整形数据
  DWORD:             32位无符号整型数据(DWORD32)
  DWORD64:         64位无符号整型数据
  INT:                       32位有符号整型数据类型
  INT_PTR:             指向INT数据类型的指针类型
  INT32:                  32位符号整型
  INT64:                  64位符号整型
  UINT:                    无符号INT
  LONG:                 32位符号整型(LONG32)
  ULONG:              无符号LONG
  LONGLONG:      64位符号整型(LONG64)
  SHORT:              无符号短整型(16位)
  LPARAM:           消息的L参数
  WPARAM:         消息的W参数
HANDLE: 对象的句柄,最基本的句柄类型
  HICON:               图标的句柄
  HINSTANCE:    程序实例的句柄
  HKEY:                注册表键的句柄
  HMODULE:       模块的句柄
HWND:              窗口的句柄
  LPSTR:              字符指针,也就是字符串变量
  LPCSTR:           字符串常量
  LPCTSTR:         根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型
  LPCWSTR:       UNICODE字符串常量
  LPDWORD:      指向DWORD类型数据的指针
  CHAR:               8比特字节
  TCHAR:             如果定义了UNICODE,则为WCHAR,否则为CHAR
  UCHAR:            无符号CHAR
  WCHAR:           16位Unicode字符
  BOOL:                布尔型变量
  BYTE:                 字节类型(8位)
  CONST:             常量
  FLOAT:              浮点数据类型
  SIZE_T:              表示内存大小,以字节为单位,其最大值是CPU最大寻址范围
  VOID:                 无类型,相当于标准C语言中的void
  WINAPI:             Windows API的函数调用方式,常见于SDK头文件中对API函数的声明中,相当于_stdcall(更严格地说,这不是数据类型,而是一种函数调用约定

二,Windows数据类型命名规律

基本数据类型包括:BYTE、CHAR、WORD、SHORT、INT等。
  指针类型的命令方式一般是在其指向的数据类型前加“LP”或“P”,比如指向DWORD的指针类型为“LPDWORD”和“PDWORD”
  各种句柄类型的命名方式一般都是在对象名前加“H”,比如位图(BITMAP)对应的句柄类型为“HBITMAP”。
  无符号类型一般是以“U”开头,比如“INT”是符号类型,“UINT”是无符号类型
  根据这些命名规律以及自己的经验看到一些没见过的数据类型也就能知道它的代表的意思

三,Windows参数简写

1、  b 布尔

2、 by BYTE

3、 c chr 或WCHAR TCHAR

4、 n short

5、 i int

6、 x、y 分别表示x 坐标,y 坐标

7、 cx、cy 分别表示x 方向长度和y 方向长度

8、 b 或f BOOL(int),f 代表“flag”

9、 w WORD(无符号short)

10、l LONG 长整数

11、dw DWORD 无符号长整数

12、fn function 函数

13、s string 字符串

14、sz 以0 字节结尾的字符串

15、h 句柄

16、p 指针

17、lpfn 指向函数的长指针

18、cb 字节数

19、lpsz 指向以0 结尾的字符串的长指针

20、g_ 全局变量

21、c_ 常量

22、m_ 类数据成员

23、s_ 静态变量

24、CS_ 类风格选项

25、CW_ 创建窗口选项

26、DT_ 绘制文本选项

27、IDI_ 图标ID 号
28、IDC_ 光标ID 号

29、MB_ 消息框选项

30、SND_ 声音选项

31、WM_ 窗口消息

32、WS_ 窗口风格

33、rc 矩形

四,Windows数据类型与标准C数据类型的关系

查看Windows数据类型的定义可以看到,所有的windows数据类型都是由C数据类型经过类型重定义得到的。

DWORD实质上就是 unsigned long 数据类型,32位无符号整型。

HANDLE类型实质上是void,HANDLE定义为:
  typedof    PVOID    HANDLE;
  HANDLE实际上就是一个PVOID,那PVOID又是什么呢?
  typeof     void      *PVOID;
  PVOID就是指向void的指针。
  所有的Windows数据类型都是通过这种方式在SDK的头文件中进行定义的,它们都是来源于标准C的

【Windows核心编程】Windows常见数据类型的更多相关文章

  1. Windows核心编程第二章,字符串的表示以及宽窄字符的转换

    目录 Windows核心编程,字符串的表示以及宽窄字符的转换 1.字符集 1.1.双字节字符集DBCS 1.2 Unicode字符集 1.3 UTF-8编码 1.4 UTF - 32编码. 1.5 U ...

  2. Windows核心编程第一章.错误处理

    Windows核心编程第一章,错误处理. 一丶错误处理 1.核心编程学习总结 不管是做逆向,开始做开发.在Windows下.你都需要看一下核心编程这本书.这本书确实写得很好.所以自己在学习这本书的同时 ...

  3. windows核心编程 - 线程同步机制

    线程同步机制 常用的线程同步机制有很多种,主要分为用户模式和内核对象两类:其中 用户模式包括:原子操作.关键代码段 内核对象包括:时间内核对象(Event).等待定时器内核对象(WaitableTim ...

  4. windows核心编程---第二章 字符和字符串处理

        使用vc编程时项目-->属性-->常规栏下我们可以设置项目字符集合,它可以是ANSI(多字节)字符集,也可以是unicode字符集.一般情况下说Unicode都是指UTF-16.也 ...

  5. 《windows核心编程系列》二谈谈ANSI和Unicode字符集 .

    http://blog.csdn.net/ithzhang/article/details/7916732转载请注明出处!! 第二章:字符和字符串处理 使用vc编程时项目-->属性-->常 ...

  6. 【Windows】windows核心编程整理(下)

    windows核心编程整理(上) windows核心编程整理(下) 线程的堆栈 每当创建一个线程时,系统就会为线程的堆栈(每个线程有他自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个以保 ...

  7. C++Windows核心编程读书笔记

    转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...

  8. 【转】《windows核心编程》读书笔记

    这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入 ...

  9. Windows核心编程随笔

    最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习Windows原理的书籍推荐,大家可以拜读其中一本来入 ...

  10. windows核心编程---第九章 同步设备IO与异步设备IO之同步IO

    同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...

随机推荐

  1. poj 3678 Katu Puzzle(Two Sat)

    题目链接:http://poj.org/problem?id=3678 代码: #include<cstdio> #include<cstring> #include<i ...

  2. valuestack(值栈) 和 actioncontext(上下文)

    Strut2的Action类通过属性可以获得所有相关的值,如请求参数属性值等.要获得这些参数值,我们要做的唯一一件事就是在Action类中声明与参数同名的属性.在Struts2调用Action类的Ac ...

  3. ecshop获取url_domain

    <?php function url_domain() { $curr = strpos($_SERVER['PHP_SELF'], '/') !== false ? preg_replace( ...

  4. java读取图片的(尺寸、拍摄日期、标记)等EXIF信息

    1.metadata-extractor是 处理图片EXIF信息的开源项目,最新代码及下载地址:https://github.com/drewnoakes/metadata-extractor 2.本 ...

  5. CMDLINE的解析

    在linux的config文件中有一个特殊的宏定义CMDLINE,以前也一直在使用这个宏的参数,但是真正这个宏的解析和使用却不怎么明确.这次有机会多对它有些了解,不妨把这个浅显的认识说出来,记下来. ...

  6. myeclipse 解决没有自动提示

    有时候myeclipse误操作会丢失自动提示功能,使用.也不出现代码提示,进入window->preferences->java->Editor->Content Assist ...

  7. DllImport中的EntryPoint

    工作中常常会使用到C#的应用来调用C++中的底层函数,此时就须要使用到DllImport,而DllImport中有一个EntryPoint(入口点),非常多文章都没有说明这个值怎样进行获取的,详细获取 ...

  8. python装饰实现线程同步

    import threading def tryfinally(finallyf):   u"returns a decorator that adds try/finally behavi ...

  9. Android内存优化之——static使用篇(使用MAT工具进行分析)

    这篇文章主要配套与Android内存优化之——static使用篇向大家介绍MAT工具的使用,我们分析的内存泄漏程序是上一篇文章中static的使用内存泄漏的比较不容易发现泄漏的第二情况和第三种情况—— ...

  10. Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)

    1. 请用LinkedList模拟栈数据结构的集合,并测试:  题目的意思是:     你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成 ...