我想创建一个线程,用
AfxBeginThread(ComputeThreadProc, GetSafeHwnd(),
               THREAD_PRIORITY_NORMAL);
我又在class CCsh2Dlg : public CDialog类定义前面声明了一个全局函数,
在CComputeDlg::CComputeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CComputeDlg::IDD, pParent)
的上面定义了这个全局函数
UINT ComputeThreadProc(LPVOID pParam)
{
   ............
   ............
}
可是编译出现上面的问题.这是什么原因呢?
我第一次想做个多线程的程序,不要见笑.
谢谢了

解决方案 »

  1.   


    HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // pointer to security attributes
      DWORD dwStackSize,                         // initial thread stack size
      LPTHREAD_START_ROUTINE lpStartAddress,     // pointer to thread function
      LPVOID lpParameter,                        // argument for new thread
      DWORD dwCreationFlags,                     // creation flags
      LPDWORD lpThreadId                         // pointer to receive thread ID
    );
    试试DWORD WINAPI RecvBitmapThreadFunc(LPVOID lpv);DWORD dwRecvBitmapThreadid;
    HANDLE hRecvBitmapThread = CreateThread(NULL,0,RecvBitmapThreadFunc,NULL,0,&dwRecvBitmapThreadid);
      

  2.   

    DWORD WINAPI UINT ComputeThreadProc(LPVOID pParam)
    {
       ............
       ............
    }
      

  3.   

    在申明这个RecvBitmapThreadFunc的时候应该这样申明,如果是全局的话
    DWORD WINAPI RecvBitmapThreadFunc(LPVOID p);
    函数体应该是这样:
    DWORD WINAPI RecvBitmapThreadFunc(LPVOID p)
    {
    ........
    }