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

定义

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();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jwt重放攻击_【干货分享】基于JWT的Token认证机制及安全问题

一步一步教你基于JWT的Token认证机制实现,以及如何防范XSS攻击、Replay攻击和中间人攻击。文章目录一、几种常用的认证机制1.1 HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth…

jquery find 找到frame select_简述jQuery

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。一、获取元素jQuery的核心设计思想就是获取元素,然后对其操作;因此…

求中位数中回文数之和C语言,一些算法题及答案

1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums [2, 7, 11, 1…

自然哲学的数学原理_物理起源点,牛顿《自然哲学的数学原理》

1687年 英国艾萨克牛顿(Sir Isaac Newton,1643—1727),英国物理学家、数学家、天文学家、自然哲学家和炼金术士。1687年他发表《自然哲学的数 学原理》,阐述了万有引力和三大运动定律,奠定了此后三个世纪里力学和天文学的基础&…

如何将另外一个表里的数据与联动_跨境电商(亚马逊)后台财务数据包

亚马逊后台的财务数据包是刚进这个行业的财务人员最希望能了解熟悉的,这块也是相对于国内财务比较有难度的内容,主要难点是亚马逊平台是新的东西,国内财务对规则,费用内容,流程都比较懵,另外就是各项资料都…

java和python混合编程_浅谈C++与Java混合编程

在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java官网。现实的情况是,真实的项目中,通常是涉…

无法在源表中获得一组稳定的行_行输出变压器的结构、符号及电路分析

行输出变压器又称逆程变压器、回扫变压器,俗称行输出,它是电视机、显示器中的一个重要变压器。1.行输出变压器结构行输出变压器的全部绕组和高压整流管均密封在其中,底部引出各个绕组的引脚,高压输出采用高压引线直接送至显像管的…

c语言中bluetooth函数,C语言中的低功耗蓝牙-使用Bluez创建GATT服务器

小编典典我得到了运行BlueZ 5.31的示例GATT服务器(截至本文的最新信息):我的环境: 作为来宾OS(版本14.04 32位操作系统)的VagrantVirtual BoxUbuntu Trusty Tahr更新到linux内核3.19已安装的软件包:libglib2.0-dev libdbus-1-devlibudev-dev …

c++ map是有序还是无序的_c++ unorder_map的用法

1、unorder_map与map不同:map的KEY值是有序的,而unorder_map则是无序的;2、unorder_map自定义的KEY值时需要注意思下面两点: KEY为一个类时,需要重载符号; 需要自定义一个HASH类,至于为什么&…

pid调节软件_非常实用的PID算法和PID控制原理

点击箭头处“工业之家”,选择“关注公众号”!PID控制原理和特点工程实际中,应用最为广泛调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单…

c语言的有趣小程序,一个有趣的小程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼源码:#include #include #include #include #include HINSTANCE g_hInstance 0;LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nSh…

对pca降维后的手写体数字图片数据分类_【AI白身境】深度学习中的数据可视化...

今天是新专栏《AI白身境》的第八篇,所谓白身,就是什么都不会,还没有进入角色。上一节我们已经讲述了如何用爬虫爬取数据,那爬取完数据之后就应该是进行处理了,一个很常用的手段是数据可视化。通过数据可视化&#xff0…

android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...

作者:却把清梅嗅链接:https://github.com/qingmei2/blogs/issues/30前言本文将对Paging分页组件的设计和实现进行一个系统整体的概述,强烈建议 读者将本文作为学习Paging 阅读优先级最高的文章,所有其它的Paging中文博客阅读优先级…

Android自动伸展动画,android – 如何实现平滑的展开/折叠动画

我指的是在这里找到的扩展/折叠动画代码.虽然这样做不好,动画不顺利.我做一些登录代码.public static void expand(final View v) {v.measure(MeasureSpec.makeMeasureSpec(((View)v.getParent()).getWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(1024, Measur…

sql server numeric 可存几位小数_想成为优秀SQL高手?你就差这些细节

标准结构化查询语言(Structured Query Language)简称SQL,sql是我们日常工作中使用最多一项技能,写sql可以说是一个可以干到退休的技能。看似简单,但要精通却很难。 sql包括增、删、改、查,创建表、删除表、修改表等等内容&#xf…

华为云空间兑换码在哪里找_华为云空间在哪里找到

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。华为云空间可以在文件管理中找到,具体的操作步骤如下:1、这里以华为p10 plus手机为例,先打开手机上的【实用工具】。2、进入到手机的实用工具以后…

android webview全屏时自动切换横屏,Android强制横屏+全屏的几种常用方法

CLR via C#深解笔记二 - 类型设计类型基础 所有类型都从System.Object派生 CLR要求所有对象都用new 操作符来创建. Employee e new Employee("Constructor Para ...vim常用命令笔记(转载)添加多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl v,进入列(也叫…

java random产生随机数_java的三种随机数生成方式,必掌握

随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:第一种:new Random()第二种:Math.random()第三种:currentTimeMillis()第一种需要借助java.util.Random类来产生一个随机数…

android n-ify miui,MIUI7.5版刷机包

MIUI7.5先行版给你带来跟多的天气信息和资讯,小米MIUI8的正式版虽然还没有推出,如空气质量,所以在Android N-ify模块下有点显示问题。MIUI7.5版刷机包小米miui7.5刷机方法下载Miflash线刷工具,双击进行安装,安装期间如…

python代码书写_Python代码的优雅写法,让代码更简洁

我们都知道,Python 的设计哲学是「优雅」、「明确」、「简单」。这也许很多人选择 Python 的原因。但是我收到有些伙伴反馈,他写的 Python 并不优雅,甚至很臃肿,那可能是你的姿势不对哦!今天就给大家带来 Python 语句的…