问一个比较难的问题?可能涉及Windows的消息循环机制,请高手帮忙!(里面内容很多,请耐心地读!)??????????????????
是这样的。在一个对话框里,单击某一按钮后用函数AfxBeginThread(Function,this)开始启动一个线程。显然这里this应该是指向当前对话框的指针,Function为我定义的线程函数。
在Function里,它所接收的唯一参数就应该是指向对话框的指针了。我在这个函数里用一个循环不断的向对话框发送消息,如下:
::SendMessage(pDlg->m_hWnd,WM_FRESH,0,0);
pDlg是通过this得到的对话框指针。
WM_FRESH是我在对话框类中定义的一个消息 #define WM_FRESH WM_USER+6
对话框类中也有相应的消息响应函数及ON_MESSAGE宏的申明,一切正常。
上述程序在debug版本运行正常,设断点调试表明pDlg也确实指向了这个对话框。但改成release版本后循环第二次就出错,说“[0x004372a5]指令引用的[0x00360936]内存。该内存不能为[read]。”
我实在搞不明白怎么回事,求高手指点!