none
有没有WINCE5消息队列的例子啊? RRS feed

  • 问题

  •  g_msgoption.dwSize=10;
         g_msgoption.dwFlags=MSGQUEUE_NOPRECOMMIT;
         g_msgoption.dwMaxMessages=10;
         g_msgoption.cbMaxMessage=128;
         g_msgoption.bReadAccess=1;
      g_q_msgr=CreateMsgQueue (NULL,&g_msgoption);
    在EVC中,句柄返回值一直是0,怎么回事?
    2009年2月14日 3:01

答案

  • 应该是你MSGQUEUEOPTIONS结构填的不对,以下代码使我们WinCE培训课程中有关例子的源码,确认是可以用的,请参考: 
    DWORD  numRead;
     DWORD  flags;
     BYTE   buf[sizeof(DEVDETAIL) + MAX_DEVCLASS_NAMELEN * sizeof(TCHAR)];
     MSGQUEUEOPTIONS qoptions = { sizeof(MSGQUEUEOPTIONS), MSGQUEUE_NOPRECOMMIT, 0, sizeof(buf), TRUE }; 

     hMsgQ = CreateMsgQueue( NULL, &qoptions );
     if( hMsgQ == NULL )
     {
      //ERRORMSG(1,(_T("CreateMsgQueue failed: (0x%X)\r\n"),GetLastError()));
      return 0;
     }


    http://wince.cn/ or http://windowsce.com.cn/
    2009年2月14日 5:07
    版主

全部回复

  • 应该是你MSGQUEUEOPTIONS结构填的不对,以下代码使我们WinCE培训课程中有关例子的源码,确认是可以用的,请参考: 
    DWORD  numRead;
     DWORD  flags;
     BYTE   buf[sizeof(DEVDETAIL) + MAX_DEVCLASS_NAMELEN * sizeof(TCHAR)];
     MSGQUEUEOPTIONS qoptions = { sizeof(MSGQUEUEOPTIONS), MSGQUEUE_NOPRECOMMIT, 0, sizeof(buf), TRUE }; 

     hMsgQ = CreateMsgQueue( NULL, &qoptions );
     if( hMsgQ == NULL )
     {
      //ERRORMSG(1,(_T("CreateMsgQueue failed: (0x%X)\r\n"),GetLastError()));
      return 0;
     }


    http://wince.cn/ or http://windowsce.com.cn/
    2009年2月14日 5:07
    版主
  •  谢谢!!
    2009年2月14日 6:29