[请教]windows平台用C++写两个console程序,利用进程间通信机制,进行消息交互,如何实现?

bearzyj2011 2012-02-28 05:16:05
需求如题:
1.不是要console接受windows的系统消息
2.不希望两个console间通过socket、管道、共享内存等方式,就想了解下怎么写进程间的消息收发

例如自己写了两个console程序a.exe b.exe,那么这就是两个进程了,如何自己编写a和b的代码,使得a发送“12345”字串,b能接收并打印出来。


没怎么接触过windows编程,问题比较弱智,见笑了,麻烦给个具体的例子,千万别说“去查MSDN就知道了”,呵呵。
...全文
640 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluewanderer 2012-02-29
  • 打赏
  • 举报
回复
只要你知道线程id,你就可以用PostThreadMessage向任何进程的线程发送消息。但是问题我也说过了,想不通过任何其他进程间通讯手段获得一个进程外线程的id是一个非常不优雅的事,往往是通过搜索窗口之类的不可靠手段间接获得。

如果你真想简单问题复杂化,不如去研究下COM的进程间通讯。
bearzyj2011 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq120848369 的回复:]

楼主唯独漏掉了消息队列..
[/Quote]

您好,我想,我想采用的应该,就是您所说的“消息队列”了,这个具体如何实现呢?我找到一些例子,大致的意思是,先写个Hook,在系统中注册,然后就可以收发消息了……

您说的是这样的方式吗?我看过那个例程,似乎只能接收到系统消息,有方法可以自定义消息,并用PostMessage等函数发送吗?
赵4老师 2012-02-29
  • 打赏
  • 举报
回复
个人意见:进程间通讯最简单莫过于用共享纯文本文件。
qq120848369 2012-02-28
  • 打赏
  • 举报
回复
楼主唯独漏掉了消息队列..
砌墙的男人 2012-02-28
  • 打赏
  • 举报
回复
如果a.exe b.exe都是打开的,就用套接字吧,这个毫无疑问
如果不是同时打开的,可以写到文件里面去。读取文件就行了,要加密也行啊
东莞某某某 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bearzyjbearzyj 的回复:]
引用 2 楼 bluewanderer 的回复:

先说为什么非得用消息... 消息依赖线程,而悲催的是线程这东西没有name,于是你不得不以各种诡异的方法去获得线程句柄——前提是这个线程挂在别的有name的东西上。

大家都问原因.....
这个,因为我以前没弄过windows编程,刚接触,就好奇呗,套接字编程比较熟悉,想换种方式。

我觉得一个进程,一个消息队列,这种方式很好理解……
[/Quote]说起来简单,A给比发送消息,信息:abcd,abcd可是在a的进程空间,在B中时无效的。这样,必须现在B中开辟内存(WriteProcessMemory)
cmzzlz 2012-02-28
  • 打赏
  • 举报
回复
可以换种思路啊
bearzyj2011 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bluewanderer 的回复:]

先说为什么非得用消息... 消息依赖线程,而悲催的是线程这东西没有name,于是你不得不以各种诡异的方法去获得线程句柄——前提是这个线程挂在别的有name的东西上。
[/Quote]
大家都问原因.....
这个,因为我以前没弄过windows编程,刚接触,就好奇呗,套接字编程比较熟悉,想换种方式。

我觉得一个进程,一个消息队列,这种方式很好理解,应该支持,所以,就像用这个方式,试试看了
showbu 2012-02-28
  • 打赏
  • 举报
回复
楼主你为什么这么纠结啊,为什么要达到这种要求呢?搞不懂
bluewanderer 2012-02-28
  • 打赏
  • 举报
回复
先说为什么非得用消息... 消息依赖线程,而悲催的是线程这东西没有name,于是你不得不以各种诡异的方法去获得线程句柄——前提是这个线程挂在别的有name的东西上。
ryfdizuo 2012-02-28
  • 打赏
  • 举报
回复
采用套接字通信更加简单点啊,

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧