无法读取结构体数据

happy5197 2008-06-14 05:01:33

SocketClientDlg.h中定义了
typedef struct MYPARAM_TAG
{
int NSockId;
int Nresult;
}MYPARAM;
在SocketClientDlg.cpp中想传两个参数给线程函数;
MYPARAM pParam;
pParam.NSockId=0;//初始化
pParam.NSockId=wParam;
pParam.Nresult=0;//初始化
pParam.Nresult=lParam;
AfxBeginThread(ThreadFunc,&pParam);
return 0;
UINT ThreadFunc(LPVOID lpParam)
{
int i=0,ii=0;
i=((MYPARAM*)lpParam)->Nresult;
ii=((MYPARAM*)lpParam)->NSockId;
switch (WSAGETSELECTEVENT(i))
{ }
}
但是数就是不对!
例如wParam=1828 lParam=1;但是到线程函数内后i=1243412;ii=0; 内存地址没有改变过!麻烦各位帮帮忙!不剩感激啊,小弟分少意思吧!
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy5197 2008-06-14
  • 打赏
  • 举报
回复
to zbing0203 谢谢你 问题 解决了 呵呵

结帖 送分谢谢你们的回答
zbing0203 2008-06-14
  • 打赏
  • 举报
回复
定义成static MYPARAM pParam; 试试
happy5197 2008-06-14
  • 打赏
  • 举报
回复
刚才按照你的方法也试了
值还是不正确;
lpParam 0x0012f8cc
myparam 0x0012f8cc
他俩的地址是一样的 但是就是值不对 很奇怪
MYPARAM pParam;
pParam.NSockId=0;//初始化
pParam.NSockId=wParam;
pParam.Nresult=0;//初始化
pParam.Nresult=lParam;
AfxBeginThread(ThreadFunc,&pParam);
return 0;
在这的时候 wParam 和 lParam都是正确的 为什么一传过来就不对了呢 迷糊中 我是菜鸟 郁闷 谢谢你了,麻烦帮我再想想办法!
leo201592 2008-06-14
  • 打赏
  • 举报
回复
MYPARAM * myparam = (MYPARAM*)lpParam;
i=myparam ->Nresult;
ii=myparam ->NSockId;

试试这样,或者直接调式看看myparam里面的值

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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