[C++]打包传输结构体或大内存块的四种办法(2) IMSMQMessagePtr spMsg("MSMQ.MSMQMessage"); CComBSTR bstrBody; bstrBody.AppendBSTR(pData); CComVariant varBody (bstrBody); spMsg->Body = varBody; hr = spMsg->Send(spQueue); 就这样,消息发送到了MSMQ。
下面我们演示如何解包。A aRead; IMSMQMessagePtr pMsg; ReadMSMQMessage(spQueueRead, pMsg); UINT uiRead = SysStringByteLen(pMsg->Body.bstrVal); LPBYTE pvRead = reinterpret_cast<BYTE*>(pMsg->Body.bstrVal); CopyMemory((void *)&aRead, pvRead, uiRead); 新的类对象实例aRead的数据经过这样的解包,就得到了aSend的数据。