我得到这个奇怪的错误:奇怪的错误铸造LPVOID为int指针
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是一个goto标签还是一个类名? – 2011-06-15 19:54:04
这只是一个简单的例子,但我想下面的其他人发现我的问题的原因。 – Smash 2011-06-15 19:57:44
我敢打赌,行*(my_int)= 1中有一个警告; – frag 2011-06-15 21:22:22