求教有关STL库中Map模板在线程间的应用
我用代码来简单描述遇到的问题,代码是临时敲的,不能运行的只是描述问题
UNIT Thread(LPVOID lparam);
class MyDialog: public CDialog
{
public:
std::map< string, int > siMap;
CreateThread(){AfxBeginThread(Thread,……);}//创建线程
}
在MyDialog的OnInitialize()函数中对siMap进行初始化
siMap["A"] = 1;
UNIT Thread(LPVOID lparam)
{
MyDialog *pMyDlg = (MyDialog*)::FromHandle(HWND(lparam));
int res = pMyDlg->siMap["A"];
return 0;
}
int main()
{
MyDialog dlg;
dlg.DoModle();
dlg.CreateThread();
return 0;
}
我的程序是在VC6.0下基于对话框的程序
当运行到 int res = pMyDlg->siMap["A"];句代码时提示内存非法访问。。加了临界区还是报同样的错误。。。
将siMap设为全局的运行正确……
求朋友们帮忙解答下,谢谢!