我在某个类中定义了一个结构体:
struct THYTempValue
{
double AValue;
double BValue;
double SubValue;
};
在调用类中引用该类,并定义了一个成员变量:
THYTempValue m_HYValue;
然后在线程中分别给予赋值,发现赋值不成功,然后给其赋予常量,也发现赋不了值,很迷惑,相关代码如下:unsigned long WINAPI TfrmHY250Meter::MeterReadThread(LPVOID Param)
{
TfrmHY250Meter* frm = (TfrmHY250Meter*)Param;
if( NULL == frm )
{
ExitThread(0);
}
frm->m_Active = true;
......
//以下为问题所在,不晓得为什么赋值不了,我该为常量赋值进去也不行,迷惑得很
frm->m_HYValue.AValue = 2.2;
frm->m_HYValue.BValue = 3.2222;
frm->m_HYValue.SubValue = 23.3255;
......
return 0;
}
struct THYTempValue
{
double AValue;
double BValue;
double SubValue;
};
在调用类中引用该类,并定义了一个成员变量:
THYTempValue m_HYValue;
然后在线程中分别给予赋值,发现赋值不成功,然后给其赋予常量,也发现赋不了值,很迷惑,相关代码如下:unsigned long WINAPI TfrmHY250Meter::MeterReadThread(LPVOID Param)
{
TfrmHY250Meter* frm = (TfrmHY250Meter*)Param;
if( NULL == frm )
{
ExitThread(0);
}
frm->m_Active = true;
......
//以下为问题所在,不晓得为什么赋值不了,我该为常量赋值进去也不行,迷惑得很
frm->m_HYValue.AValue = 2.2;
frm->m_HYValue.BValue = 3.2222;
frm->m_HYValue.SubValue = 23.3255;
......
return 0;
}
调试时beginthread/createthread/afxcreatethread时加个断点看参数;是不是你想要线程操作的对象。
就是将成员变量由:THYTempValue m_HYValue;
改为:THYTempValue* m_HYValue;
这样是可以达到我的目的了,这里还请各位老大给我补下基础,如果还是按先前的定义方式,我如何传地址进去呢?
定义值的话 THYTempValue m_HYValue;可以传地址进去啊 &m_HYValue