【发布时间】:2011-06-15 19:50:17
【问题描述】:
我收到这个奇怪的错误:
MyView:OnInitialUpdate()
{
int* my_int;
*(my_int) = 1;
AfxBeginThread(MyThread,my_int);
}
UINT MyThread(LPVOID param)
{
int* my_int = reinterpret_cast<int*>(param);
message(*(my_int));
return 0;
}
void message(int value)
{
CString txt;
txt.Format(_T("%d"),value);
AfxMessageBox(txt);
}
消息框输出为 4250636。
现在,如果我只是在将值传递给线程之前添加另一个消息框:
MyView:OnInitialUpdate()
{
int* my_int;
*(my_int) = 1;
message(*(my_int));
AfxBeginThread(MyThread,my_int);
}
两个消息框输出都是 1。
【问题讨论】:
-
这真的可以编译吗?
MyView是转到标签还是类名? -
这只是一个简化的例子,但我猜下面的其他人找到了我的问题的原因。
-
我敢打赌 *(my_int) = 1; 行中有一个警告;