进程间消息WM_COPYDATA通信示例

     这个是我的操作系统课的最后的一个实验,是一个考试。具体要求是:

     设有一个数据结构,包含如下三个内容:
     第一,一个整型变量;
     第二,一个八个元素的字符数组;
     第三,不少于十个字符的字符串,采用窗口消息的方式,在两个进程间正确的传递这一数据结构。

 

     我一看到这个题,就想到了WM_COPYDATA这个消息。这个消息以前只是见过,但是没有没用过,那么这次就刚好借着这次的机会用一下(Windows里还有没有别的消息可以实现如此功能我就不晓得了,如果哪位高手知道有,麻烦告诉我一下,谢谢了)。有了这个消息的存在,这个小东西(我不知道叫它什么,叫实验觉得不舒服,但是叫项目又太小太小了,就叫小东西吧)的实现就非常简单了:只需要在发送端,接受用户输入的信息,打包成要发送的数据结构,然后再通过WM_COPYDATA发送出去就行了。当然在WM_COPYDATA发送的时候,需要定义一个COPYDATASTRUCT的数据结构,然后再通过这个发送,具体的就看MSDN了。然后在接收端响应WM_COPYDATA就行了。

    

      刚好,在我做这个实验之前,看到了一个简单的消息映射技术,也将它实现了,具体的下一篇再写。(这个实验关键的就在搞这个了,第一次写那么大的宏)好了,摆码:

(资源文件就没有发了,那个不重要,根据代码我觉得也可以推出来的吧,嘿嘿)

1. DataSended.h定义要发送的数据结构:

 

2. MessageMap.h用于实现消息映射的宏:

 

3. DataSender.h发送方的类:

 

4. DataSender.cpp发送方的主函数:

 

5. DataReceiver.h 接受方的类:

 

6. DataReceiver.cpp 接受方的主函数:

 

     考试一定要认真对待,所以界面一定要友好。在发送方,这定了Edit控件的属性,接受数据的不能输入字符(可是这样就没有负号了,是个问题啊),接受八个字符的只能输入八个字符,而且发送键一开始为灰,只有当输入满足条件的时候才能使用。

 

     我这里用的,消息映射宏(当然纯粹是模仿别人的),我觉得值得再写一篇说,所以就放在下一篇了。

   

     最后还是欢迎拍砖,如果要转载的话(可能性还是很小很小)注明出处,代码可以使用,只要注明说明一下出处就行了。谢谢:

http://blog.csdn.net/zha_1525515/archive/2009/11/11/4797836.aspx

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值