如何把lParam转换成指针

galois 2000-12-02 04:37:00
我现在在用一个第三方的dll,该执行该dll里的函数,函数就给我指定的窗口发一个消息。wParam是我调用的函数的序号,lParam 里具说明文挡里讲是包含一个32位的指针,指针指向一个结构,结构中包含我想要得一组数据,我现在的问题就是如何得到指针,我尝试着将lParam直接赋给一个结构指针,但是编译器告诉我无法进行类型转换,即UINT无法转为POINTER,是不是有API做这件事?如何得到LPARAM中包含的pointer,最好能详细的示范。挺着急,请大家帮忙,顺便拿分。(只有86分了,全给了)
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxbyl 2000-12-02
  • 打赏
  • 举报
回复
其实RedFire说的就没错
LiangFomu 2000-12-02
  • 打赏
  • 举报
回复
结构体为:
typedef struct tagMYSTRUCT
{
int a;
float b;
BYTE* c;
}MYSTRUCT;

指针做参数用于发送消息
MYSTRUCT mystru;
mystru.a=9;
mystru.b=0.923f;
mystru.c=(BYTE*)&mystru.a;
LONG lPointer=(LONG)&mystru;
MessageFunction(,,lPointer);

从参数中得到数据
MYSTRUCT *pmystru;
pmystru=(MYSTRUCT*)lParam;


RedFire 2000-12-02
  • 打赏
  • 举报
回复
sxbyl,我不是故意跟你抢的,呵呵,我是有意的。
sun2000 2000-12-02
  • 打赏
  • 举报
回复
没有这么回事,你第一条要知道这个指针所指向的内容的结构如何,
否则你如何正确取得其内容?
如(如果lParam是一个字符串指针,则可以如下)
LPCSTR lps = (LPCSTR)lParam;
注意类型转换
sxbyl 2000-12-02
  • 打赏
  • 举报
回复
居然被RedFire抢先了1秒钟!真可气!RedFire!!还我分来!!
RedFire 2000-12-02
  • 打赏
  • 举报
回复
我不知道你说的是什么意思。但是我给你一个例子:

LRESULT WINAPI MouseHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
LPMOUSEHOOKSTRUCT pMouseHook = (MOUSEHOOKSTRUCT FAR *)lParam;
......
}
其实就是强制转化就行了,记得你要包含结构的定义哦!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧