小弟刚接触Message Queue,现有一个很弱的问题搞不明白1.在本机的进程间通信时,Message Queue和其他的方法相比是否更优越?即,如果用于本地进程间通信(交互大量数据),是否有必要使用Message Queue?2.HRESULT APIENTRY MQOpenQueue(
  LPCWSTR lpwcsFormatName,  //这个路径参数表示的究竟是什么路径?
  DWORD dwAccess,        
  DWORD dwShareMode,     
  QUEUEHANDLE * phQueue  
);
比如:  HRESULT hr;
  //配置其他参数
  hr = MQPathNameToFormatName( ".\\private$\\M_REVDISPLAY",  
                                wszFormatNameBuffer, 
                                &dwFormatNameBufferLength ); 
  if( SUCCEED(hr) )   
  {
      //配置其他参数
      hr = MQOpenQueue( wszFormatNameBuffer, 
                     dwAccess,
                     dwShareMode,
                     &g_hActiveQueue );
  }  请问,这里的".\\private$\\M_REVDISPLAY"是什么意思?可以自己随意取一个路径名吗?还是必须先在什么地方建立一个名为M_REVDISPLAY的文件(目录或者其他的什么咚咚)才行?

解决方案 »

  1.   


    进程通信好多啊:PIPE,mailslot,winsock,wm_copydata,memory map file ...
      

  2.   

    msmq 是微软的一个windows组件,在控制面板--添加删除程序--添加删除组件中添加即可,注意rpc等一些服务必须已经启动才能正确安装。LPCWSTR lpwcsFormatName,  //这个路径参数表示的究竟是什么路径?
    表示队列的format name,由MQPathNameToFormatName的第二个参数得到".\\private$\\M_REVDISPLAY"是一个路径名,可以自己任意取
    但.\\private表示本机的私有队列,此外还有".\\public等
    (装上msmq后从计算机管理中看看就知道了)