HANDLE  ReplyThreadHandle[OVERALLCOMPUTER];//定义线程句柄if(ReplyThreadHandle[i]!=ERROR_INVALID_HANDLE)//防止无效句柄
   CloseHandle(ReplyThreadHandle[i]);报错:no conversion from 'const long' to 'void *'ERROR_INVALID_HANDLE不是句柄吗?为何报错?

解决方案 »

  1.   

    在winerror.h里的定义
    #define ERROR_INVALID_HANDLE             6L
    也就是说编译器把ERROR_INVALID_HANDLE人为是long
    而HANDLE的定义是typedef void *HANDLE;
    你如果非要用就强制吧
    if(ReplyThreadHandle[i]!=(HAMNDLE)ERROR_INVALID_HANDLE)
      

  2.   

    我这种检测法对否,如果强制会不会出现问题?正常关闭句柄是怎样的,非法句柄是不是ERROR_INVALID_HANDLE,难道每次都用强制吗?