OnInitDialog()里放了AfxBeginThread((AFX_THREADPROC)th,this->m_hWnd);th是全局函数.UINT th(HWND hwnd)
{
char str[50];
DWORD dw=0;
while(1)
{
   AfxMessageBox("!!!!!");Sleep(2000);
   ::PostMessage(hwnd,WM_thread,(unsigned int)str,dw);
   i=0;
return TRUE;
}很奇怪的是如果我不用sleep,那么一运行就内存错误..而用了之后就可以循环2次再出现内存错误...没有用postmessage当然没事...请指点下呵呵....

解决方案 »

  1.   

    你的窗口里面是不是有一个响应WM_thread消息的处理函数??
    那是怎么实现的??那个str派什么用场,感觉这个东西有点怪
      

  2.   

    可能是在处理 WM_Thead 消息时, 对 str 指定的内存访问有问题,你自己检查一下,方便的话贴出代码
      

  3.   

    得看有关WM_thread消息的处理代码了。
      

  4.   

    WM_thread只是一个宏定义啊...在.h文件里的:const DWORD  WW=WM_USER+101;
      

  5.   

    WM_thread的处理代码就是这个
    void CSerialDlg::mm(char *rece)
    {
    UpdateData(1);
    if(m_receive=="A")
    MessageBox("??");
    }
    是一个从对话框里读东西的函数
      

  6.   

    子窗口还没建立好,就UpdateData(1);肯定出错~~~~~~~~~
      

  7.   

    发给我吧,帮你看看..........
    [email protected]