以下代码为我工程的主函数部分,原来是把主线程挂起,由主控杀进程,但是搞不好会蓝屏,现在有自己退出,在其他的子线程中触发,现在是创建事件怎么也不成功,返回值一直为0.不知道为什么,反而自己单写的小例子中可以创建成功,创建语句是一样的,有高人明白的指导一下,谢谢
#include "demo.h"
#include "ShareMemLog.h"double g_qwFrequency = 0;
HANDLE g_hEventExit = NULL;
int main(int argc, char* argv[])
{
HANDLE m_hSharedMemory = NULL;
LARGE_INTEGER t_struFrequency;
g_hEventExit = CreateEvent(NULL,FALSE,FALSE,NULL);//此处返回值一直为0,????? QueryPerformanceFrequency(&t_struFrequency);
g_qwFrequency = (double)t_struFrequency.QuadPart;
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
PrmtvInit();                          
#if LOG_ONOFF
InitShareMemLog(PHY_LOG_TYPE);
#endif

PCI_Init();
KillMySelf_fuwuqi(); //for kill-TDdriver 101109 

WaitForSingleObject(g_hEventExit,INFINITE);
// SuspendThread(GetCurrentThread());
return 0;
}

解决方案 »

  1.   

    这是返回一个句柄,如果是0 ,你用GetLastError() 看看错误代码
      

  2.   

    问题解决了,是应为HANDLE g_hEventExit = NULL;这个句柄设置问题,改成HANDLE g_hEventExit;后创建事件就成功了,改回原来的形式也成功了,更莫名其妙的是过了一会又不行了,最后无奈选则了第二种形式,不知道是句柄定义的问题还是编译器的问题,不过还是谢谢给我回帖的朋友