Windows 编程中的数据类型(转自:维基百科)

LPVOID

这种类型是指“指向void类型的指针。这是因为ANSI-C的标准中有这种void类型的指针,用来指向任意类型。这更像是一个预留类型,尽量不要使用。如果遇见LPVOID类型的参数,需要给它传一个NULL参数。

DWORD,WORD,BYTE

这几种类型无论在什么类型的平台上,都有相同的固定长度。

DWORD的长度为无符号的32位整型,其前缀为dw。

WORD的长度为无符号的16位整型,其前缀为w。

BYTE的长度为无符号的8位整型,其前缀为b。

LONG, INT, SHORT, CHAR

这几种类型的长度不是固定的,而是随宿主机器的不同而变化。

typedef long LONG;

typedef unsigned long ULONG;

typedef int INT;

typedef unsigned int UINT;

typedef short SHORT;

typedef unsigned short USHORT;

typedef char CHAR;

typedef unsigned char UCHAR;

STR,

STR是一种已经获得存储空间的字符串类型。当字符串可以像字符数组那样操作时,我们就可以使用

STR了。人们一般不使用STR这种类型,而是使用字符数组,因为字符数组的长度是透明的。

LPSTR(Long Poniter to a STR )与其它String对象的唯一不同在于LPSTR只能是ASCII,而不

能是Unicode。它的前缀通常是lpsz(long pointer to a string that is zero-terminated)。这种类

型所代表的字符串都是以“0”结尾的。

LPSTR

 

typedef STR* LPSTR;

TCHAR

	这是一种"可变"的类型,也就是说TCHAR即可以存放1个字节的AscII字符,也可以存放2个字节的Unicode
字符。它的定义类似于
	#ifdef UNICODE
	#define TCHAR WORD
	#else
	#define TCHAR BYTE
	#endif

TSTR, LPTSTR

	类似于TCHAR,是一种”可变“的类型,既可以存放1个字节的AscII字符,也可以存放2个字节的Unicode
字符。

HANDLE

	在windows内核中,windows有一张记录了内核所需管理的不同对象的表格,这些对象如窗口,按钮,标签,菜单等。
每一个这一类的对象都有一个唯一的标记值(类似ID),就是HANDLE。如果你想拿那张表中记录的对象,你就必须用相应的
那个HANDLE去想windows拿,windows将返回对应的对象。
	在<windows.h>中,HANDLE是一个32位的整型,但我们不能将它作为一个数来计算,更应该将其作为一个标记来使用。

HWND

HWND被认为是指向窗口的HANDLE,被用来记录在屏幕上显示的不同对象。如果你想跟一个窗口交互,你必须拥有一个该

窗口对象的handle,即HWND。HWND的前缀是“hwnd”。

HINSTANCE

HINSTANCE是指向程序实例的一个句柄(handle)。每个程序(program)都有一个单一的实例(instance)变量,因此

操作系统可以和程序进行通讯。例如,如果你想创建一个窗口,你必须将你的程序的HISTANCE传到windows kernel中,这样kernel

才能知道这个窗口是属于谁的。如果你想使自己的程序与其它程序进行通讯,最好的方法就是将你程序的HISNTANCE的拷贝传过去

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值