II. Data types in the Win32 API
来源:互联网 发布:网络卡盟 编辑:程序博客网 时间:2024/06/05 19:49
II. Data types in the Win32 API (Win32 API 中的数据类型)
WINAPI 定义了它独有的数据类型们,它们被定义在 C/C++ 语言中(int, char, float, 等)。现在,你无须学习它们所有的定义。记住它们在 Windows API 中是可用的就足够了,并且当他们出现、或者在程序中某处需要用到它们的时候,回来看看他们的定义。我们会在以后用到它们。它们可用被分为以下几类:基本类型[ basic ],描述符[ descriptor ],字符串[ string ],和 实用工具[ utility ]。
Base types 基本类型
- BOOL — 类似于数据类型“bool”。它也有两个值 — 0 和 1。当你使用 WINAPI时,你最好使用 0 而不是 NULL。
- BYTE — 与 byte 或 8位无符号整型一样。类似于无符号char[ unsigned char ]。
- DWORD —32位无符号整型。类似于 long int, UINT。
- INT — 32位整型。类似于 long int。
- LONG — 32位整型。类似于long int。
- NULL — 空指针。在程序中,它是这么被声明的:
void *NULL = 0;
- UINT — 32位无符号整型。类似于 unsigned long int, DWORD。
Descriptor for data types 数据类型的描述符
描述符,就像我们之前提到的那样,是对象[ any object ]的一个标识符。不同类型的对象[ object ]有不同的标识符。对象的描述符可以被表述为:
HANDLE h;
有画笔、鼠标光标、字体等各种描述符。在这些描述符的帮助下,我们可以在程序初始化时、或者程序运行时,修改任何设置。这在控制台程序中是做不到的。他们用于控制类型的描述函数中:CreateProcess(),ShowWindow(),等。或者作为某些函数的返回值。
// 接受输入或输出设备的描述符HANDLE h = GetStdHandle (DWORD nStdHandle);
在该函数中,我们获取了标准输入输出流的描述符,例如,我们可以在某些排序环节使用它。
- HANDLE — 对象的描述符。
- HBITMAP — 位图的描述符。来自名称handle bitmap。
- HBRUSH — 画笔的描述符。来自名称handle brush。
- HCURSOR — 光标的描述符。来自名称handle cursor。
- HDC — 设备环境的描述符。来自名称handle device context。
- HFONT — 字体描述符。来自名称handle font。
- HICONS — 图标描述符。来自名称handle icons。
- HINSTANCE — 应用程序实例描述符。来自名称handle instance。
- HMENU —菜单描述符。来自名称handle menu。
- HPEN — 钢笔描述符。来自名称handle pen。
- HWND — 窗口描述符。来自名称handle window。
String data types 字符串数据类型
首先,我们来看一下,在Windows操作系统中有哪些编码类型。有两种字符编码类型:ANSI 和 UNICODE。 单字节[ single-byte ]字符ANSI,双字节[ double-byte ]的是UNICODE。我们可以在项目属性中轻松连接[ connect ]UNICODE。然后,在代码中,我们可以像下面这样创建一个char数据类型的变量:
// 创建一个有10个元素的字符串wchar_t str[10];
如果我们想使用ANSI字符串设定,我们通常可以这么写:
// 同样创建一个有10个元素的字符串char str[10];
在 WINAPI 中,依赖于Unicode是否被连接[ is connected ],两种字符串类型分别使用:UNICODE 或 TCHAR。下面,我们将描述这些字符串数据类型。
- LPCSTR — 指向以0结束符为结尾的常量字符串的指针。来自于名称long pointer constant string。
- LPCTSTR — 指向未使用UNICODE编码的常量字符串的指针。来自名称long pointer constant TCHAR string。这是LPCSTR的附加功能。
- LPCWSTR — 指向常量UNICODE字符串的指针。来自名称long pointer constant wide character string。这是LPCSTR的附加功能。
- LPSTR — 指向以0结束符为结尾的字符串的指针。来自名称long pointer constant string。
- LPTSTR — 指向未使用UNICODE编码的字符串的指针。来自名称long pointer TCHAR string。这是LPSTR的附加功能。
- LPWSTR — 指向UNICODE字符串的指针。来自名称long pointer wide character string。这是LPSTR的附加功能。
- TCHAR — 符号数据类型。与 char 和 wchar_t 一样。
Utility data types 实用工具数据类型
实用工具数据类型被用在某些类型的函数中。尤其是,下面描述的这些参数,当工作在窗口回调函数中时被使用,像这样:
LRESULT CALLBACK NameOfFunction(HWND hWnd, UINT uMSg, WPARAM wParam, LPARAM lParam);
- LPARAM — 描述lParam(long parameter)的类型。和wparam用在某些函数中。
- LRESULT — 值,由窗口程序返回,具有长数据类型[ long data type ]。
- WPARAM — 描述wParam ( word parameter ) 的类型。和lparam用在某些函数中。
回到目录
下一篇
- II. Data types in the Win32 API
- Data Types in PeopleCode
- DATA TYPES IN HIVE
- The CREATE DATA statement with built-in generic types
- Data Types in the Kernel <LDD3 学习笔记>
- BC430-Unit2:Data Types in the ABAP Dictionary
- Mysql Data types in summary.
- Oracle Built-in Data Types
- The Data types reference sheet
- .NET Framework Solutions: In Search of the Lost Win32 API
- III. Creating a complete window procedure in the Win32 API
- The text, ntext, and image data types are invalid in this subquery or aggregate expression.
- Linux Device Drivers 3rd Edition Data Types in the Kernel
- Here are a few guidelines to keep in mind regarding C data types on the C6000?
- Translating lotus API Data Types to LotusScript
- The default values for java data types:
- Limits for the various integer data types
- Send Raw Data to a Printer by Using the Win32 API
- poj2387~Til the Cows Come Home(最短路dijkstra)
- 最大堆
- IOS 中的多线程网络(一)总览及pthread、NSThread
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
- GPU架构基础 之 Unified L1/Texture Cache in Pascal
- II. Data types in the Win32 API
- hdu The Shortest Path in Nya Graph(建图+spfa)
- Linux的capability深入分析
- 选票统计
- 打造黑苹果(三)COMS(BIOS)设置
- netty 入门案例hello world
- 35、C++对C语言的非面向对象的扩充
- 数据库原理-多值依赖
- [LeetCode]Find Bottom Left Tree Value 寻找二叉树最左树叶的值