zoukankan      html  css  js  c++  java
  • windows 数据类型

    一,常见数据类型
      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:                    字符指针,也就是字符串变量(L long 长,历史原因,长短指针都一样了)
      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的

  • 相关阅读:
    07-图5 Saving James Bond
    07-图4 哈利·波特的考试(25 分)多源最短路,邻接矩阵
    最短路径问题
    最小生成树
    06-图3 六度空间(30 分)
    06-图2 Saving James Bond
    06-图1 列出连通集(25 分)邻接矩阵

    05-树9 Huffman Codes(30 分)
    集合及运算
  • 原文地址:https://www.cnblogs.com/DeeLMind/p/6880189.html
Copyright © 2011-2022 走看看