void RP_ReaderThread()
{
…………
}
……
我想创建一个线程
h_Thread[THREAD_NUM++]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(RP_ReaderThread),&thread_info,0,&thread_ID);
结果报错:
'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'
是什么原因啊?

解决方案 »

  1.   

    DWORD WINAPI RP_ReaderThread(PVOID Parameter)
      

  2.   


    我已经改成DWORD WINAPI PVOID型了 
    但&thread_info总是传不到RP_ReaderThread中去
    因为我在线程函数DWORD   WINAPI  CTry1Dlg::RP_ReaderThread(LPVOID p)中:
    m_serial=((ThreadInfo*)(p))->serial ;
    m_persist=(DWORD)(((ThreadInfo*)(p))->persist *INTE_PER_SEC);
    m_delay=(DWORD)(((ThreadInfo*)(p))->delay *INTE_PER_SEC);
    总是得不到值
    是为什么传不过来呢?
      

  3.   

    应该不会的,调试时WINAPI  CTry1Dlg::RP_ReaderThread(LPVOID p)传入的p的值是0?把创建的代码贴出来看看
      

  4.   

    哦 我有个地方写错了一个变量 现在值对了
    不过当运行到MFC的界面时点击按钮总是弹出Debug   Assertion   Failed的错误,我的程序是读者写者问题
    在窗口的EDIT中显示进程运行的情况
    我的程序在DEBUG下运行是对的 用上MFC就不对了 是为什么啊?
      

  5.   

    哦 我有个地方写错了一个变量 现在值对了
    不过当运行到MFC的界面时点击按钮总是弹出Debug   Assertion   Failed的错误,我的程序是读者写者问题
    在窗口的EDIT中显示进程运行的情况
    我的程序在DEBUG下运行是对的 用上MFC就不对了 是为什么啊?
      

  6.   

    必须确保thread_info在线程访问完成之前不能被释放,如果是函数内部定义的动态变量,函数返回时就会释放。
      

  7.   

    static DWORD __stdcall RP_ReaderThread(PVOID Parameter);