定义

IMSMQQueuePtr qDest; // Represents Destination Queue

IMSMQQueueInfoPtr qInfo; //Represents an open instance of the destination queue

IMSMQQueueInfoPtr qRead;

IMSMQMessagePtr qMsg; //Represents the message

初始化

qDest = NULL;

CoInitialize(NULL);

try{

qInfo.CreateInstance("MSMQ.MSMQQueueInfo");

qRead.CreateInstance("MSMQ.MSMQQueueInfo");

qMsg.CreateInstance("MSMQ.MSMQMessage");

lpszSystemInfo = tchBuffer;

GetComputerName(lpszSystemInfo,&cchBuff); // Getting the ComputerName

m_ServerName=lpszSystemInfo;

UpdateData(FALSE);

}

catch (_com_error)

{

MessageBox("Failed in CreateInstance of MSMQQueueInfo","MSMQ QueueInfo",1);

PostQuitMessage(1);

ReleaseAll();

}

创建消息队列

try

{

// m_ServerName = .\Private$\aaa 创建专有队列

// m_ServerName = .\aaa 公用队列

//

// qInfo->PathName = m_ServerName.AllocSysString(); // Setting the Queue Path

CString fname;

fname="DIRECT=OS:";

fname+=m_ServerName;

qInfo->PathName = m_ServerName.AllocSysString();

qInfo->FormatName = fname.AllocSysString();

qInfo->Label= m_msgLabel.AllocSysString(); // Setting the Queue Label

ht = qInfo->Create();

qInfo->Journal=1; // Enabling the Journal Option

qInfo->Update();

qInfo->Refresh();

}

catch (_com_error e)

{

CString str;

str.Format("%s",e.ErrorMessage());

MessageBox("Creating a Queue Failed","Create Queue",1);

//ReleaseAll();

}

给消息队列发送数据

try

{

// Create a direct format name of the queue, and

// set the FormatName property of the MSMQQueueInfo object.

// qInfo->FormatName L"DIRECT=TCP:10.9.255.71\\Private$\\test" 私有

// qInfo->FormatName L"DIRECT=TCP:10.9.255.71\\test" 公共

fname="DIRECT=OS:";

fname+=m_ServerName;

qInfo->PathName=m_ServerName.AllocSysString();

qInfo->FormatName = fname.AllocSysString();

// Open the queue.

qDest = qInfo->Open(MQ_SEND_ACCESS, MQ_DENY_NONE);

qMsg->Label = m_msgLabel.AllocSysString();

VariantInit(&vMessage);

vMessage.vt=VT_BSTR;

vMessage.bstrVal=m_msgData.AllocSysString();

qMsg->put_Body(vMessage);

VariantClear(&vMessage);

qMsg->Send(qDest);

qDest->Close();

}

catch(_com_error)

{

MessageBox("Sending the Queue failed","Send Queue",1);

//ReleaseAll();

}

读取消息队列内容  try

{

qRead->PathName=m_ServerName.AllocSysString();

fname="DIRECT=OS:";

fname+=m_ServerName;

if(status==1) fname=fname+";Journal"; // If Journal Option is Checked

qInfo->PathName=m_ServerName.AllocSysString();

qRead->FormatName = fname.AllocSysString();

qDest = qRead->Open(MQ_RECEIVE_ACCESS,MQ_DENY_NONE);

qMsg = qDest->Receive(&vtMissing,&vtMissing,&vtMissing,&vtReceiveTimeout);

if (qMsg == NULL)

{

return;

}

label=qMsg->GetLabel();

body=qMsg->GetBody().bstrVal;

m_msgLabel=(LPSTR)label;

m_msgData=(LPSTR)body;

UpdateData(FALSE);

qDest->Close();

}

catch(_com_error)

{

MessageBox("Reading the Queue Failed","Read Queue",1);

//ReleaseAll();

}

windows消息队列C语言,08年计算机二级C语言辅导:vc操作微软消息队列的方法相关推荐

  1. 计算机二级换c语言,09年计算机二级C语言辅导:C技巧(内存分配:更换策略,不要为难内存)...

    09年计算机二级C语言辅导:C技巧(内存分配:更换策略,不要为难内存) 分类:计算机等级| 更新时间:2008-11-21| 来源:教育联展网 在32位机上(64位也是一样的,但是空间大很多),一个进 ...

  2. 川轻化c语言实验答案,计算机二级c语言第4套笔试模拟试卷.doc

    计算机二级c语言第4套笔试模拟试卷.doc 第4套 笔试模拟试卷一选择题(1)下列选项中,不是一个算法的基本特征的是( ).A)完整性B)可行性C)有穷性D)拥有足够的情报(2)以下描述中,不是线性表 ...

  3. 湖北计算机二级考试c语言报名,湖北省计算机二级C语言考试.doc

    湖北省计算机二级C语言考试.doc 1.计算机在实现工业自动化中的应用主要是进行(A) A.实时控制 B.数据处理 C.数值计算 D.人工智能2.计算机的主频指的是(D)A.硬盘读写速度,用Hz表示 ...

  4. 试题以文件的形式存在C语言,2016年计算机二级C语言上机题库

    2016年计算机二级C语言上机题库 一.选择题 1.下列叙述中正确的是( ). A.数据的逻辑结构与存储结构必定是一一对应的 B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结 ...

  5. 以往计算机二级c语言填空题,计算机二级C语言考试填空题精选4

    1. 电子数字计算机最主要的工作特点是 A) 高速度 B) 高精度 C) 存储程序与自动控制 D) 记忆力强 2. 在微机的性能指标中,用户可用的内存储器容量能常是指 A) ROM的容量 B) RAM ...

  6. 2017c语言预测,2017计算机二级C语言上机最终预测题

    2017计算机二级C语言上机最终预测题 2017年上半年计算机二级考试即将到来,为了帮助大家备考,百分网小编整理了计算机二级C语言上机最终预测题,希望帮助大家顺利通过计算机二级考试. 填空题 请补充f ...

  7. 计算机二级c语言考点分析,计算机二级C语言考点分析.doc

    计算机二级C语言考点分析 目录 TOC \o "1-3" \h \z \u 计算机二级C语言考点分析 1 导读 2 一.考点分析1??C语言概述 2 二.考点分析2??运算符与表达 ...

  8. 计算机C语言常用语句,计算机二级C语言考试常见知识积累

    形式化方法是一种特别的基于数学的技术,用于软件和硬件系统的形式规范.开发以及形式验证.下面是小编整理的关于计算机二级C语言考试常见知识,欢迎大家参考! 选择结构 [考点1]关系运算 关系运算符有6个, ...

  9. 计算机二级c语言选择题范围,计算机二级C语言考点选择结构

    C语言的运算符包含的范围很广泛,共有34种运算符.C语言把括号.赋值.强制类型转换等都作为运算符处理.以下是关于计算机二级C语言考点选择结构,希望大家认真阅读! [考点1]关系运算 关系运算符有6个, ...

最新文章

  1. Swoft 源码剖析 - Swoft 中的注解机制
  2. fastcopy会损坏硬盘_硬盘坏了数据可以修复吗?恢复技巧都在这!
  3. 用js实现表格行的动态添加与删除
  4. [转]C#连接操作mysql实例
  5. foreach语句的的解析
  6. STM32F407+CubeMX+Keil上移植RTX5实时系统
  7. 【今日CV 计算机视觉论文速览】Mon, 28 Jan 2019
  8. 什么是COM组件(ZT)
  9. 文件(文本、二进制)读写,利用popen读取linux命令读取结果
  10. c语言中的单词的意思及作用,c语言入门必背单词 具体含义是什么
  11. 量子机器学习(QML)(一):量子计算基础
  12. 01-初探MQ-MQ的三大使用场景:应用解耦、异步提速、削峰填谷
  13. mysql数据库的封装
  14. UDP/TCP实时传输图像
  15. 采众家之长 凯翔软件定义存储能够后来居上吗?
  16. 华为研究院19级研究员几年心得终成趣谈网络协议文档
  17. Exiv2 With XMP for Android
  18. 【python】Algorithm
  19. STM32F103CB控制超声波HCSR04可用程序
  20. 【java校招你不知道的那些事儿】java校招不仅仅是春招秋招,具体有哪些阶段,特点是什么

热门文章

  1. css hack(ie6-9,firefox,chrome,opera,safari)
  2. 根据wsdl生成对应的Java代码进行接口测试(一)
  3. android studio lbs项目,android studio use 百度LBS have JNICommonMemCache
  4. 教育教学知识与能力小学计算机,浅谈小学计算机教学论文
  5. php-cgi 68%,php cgi 进程占用太多怎么办
  6. Pytorch(八) --Pytorch实现多分类问题
  7. spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器
  8. 58端口使用技巧跟推送_Kindle使用技巧:定时推送
  9. 游戏开发需要具备哪些技术_短视频 SDK 开发 (一) 开发一款短视频 SDK 需要具备哪些知识?...
  10. VS_QT中配置qDebug输出