LPARAMN能和很多结构转换,LPARAMN到底是什么东东,他又能和哪些结构转换呢?

来源:百度知道 编辑:UC知道 时间:2024/06/18 06:34:29
我只知道long可以转换成int

在这里它不是和结构体进行准换,而是和结构体的指针进行转换

因为在VC++中,一个指针变量的大小为4个字节,比如说有下面的一个结构体

typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

RECT r,*p;

p=&r; //这里的p的值就是r的地址了,假如说为0x1234

在这里, 0x1234是个RECT 类型的指针,但是如果我们只是把当做一个16位的数字来看呢,它和其他的没有任何区别,可以用任何的类型的变量来存储
但是,我们不能失去它的大小,就是说,不能用char类型来存储,一定要用一个能存储所有指针值的类型的变量来存储,z爱这里我们就用LPARAMN类型<32位无符号>正好合适

这里基本上消息的第3个参数是它,假如为LPARAMN test;

再用的时候,直接用RECT temp=(RECT*)test;把它解出来,r让它又和RECT类型有关系,就可以了.