局部变量生命期这种问题中如何解决呢?
线程函数中
{
string strUserId=iter2->second->UserId; //strUserId 是局部变量
char const* p=strUserId.c_str();
char * p2=const_cast<char*>(p);
PostMessage(WM_USER_LOGIN_OFF,0, (LPARAM)p2);
}
LRESULT xxx::OnMessage(WPARAM wp, LPARAM lp)
{
char* p=(char*)lp;
string str(p);
.....................
}
线程中有个局部变量, 局部变量的地址发送给了主线程
会不会有什么问题?
如果有问题,如何解决呢?
2. 假设,没有线程函数,都是在主线程中。 又会不会有问题呢
[解决办法]
不行,同一个线程也不行,用SendMessage
[解决办法]
保存到静态变量或者成员变量中