eVC编程遇到的各种问题之——进程之间的通讯

本文介绍了在编程中遇到的进程间通讯问题,采用发送COPYDATA消息的方式,详细描述了从获取主进程句柄到实现通讯的整个过程,包括EnumWindows函数和回调函数的使用,以及在静态函数中处理句柄的错误和自定义消息的不稳定情况。
摘要由CSDN通过智能技术生成

在做个程序,要读取串口数据、提取、分析、显示。在程序执行时要调用串口程序,因此要读取到串口进程的数据。这就涉及了所谓进程间的通讯了~~

 

进程间的通讯方法有多种,就选了个比较简单的,发送COPYDATA消息的方法来实现。调用串口进程后,每每串口接收到数据后,向主进程发送COPYDATA消息,主进程在接到消息后进行处理。

 

现在将遇到的问题和解决的办法总结下~~备忘……

 

问题一:如何在子进程(串口进程)中获得主进程的句柄

 

尝试1:

开始的时候我是想在串口程序的主窗口处理中调用GetWindowThreadProcessId函数的,以为知道当前窗口,就能得到创建当前窗口的进程ID号。但是试过了发现,返回的进程ID号其实还是串口进程的ID号。想想也是~~串口进程的窗口必然是串口进程创建了后再创建的么~~~虽然“此路不通”,但是也学会了GetWindowThreadProcessId的用法。

 

尝试2: 

在创建串口进程的时候,把主进程的句柄作为一个信息传递给串口进程,这样子进程就知道主进程的窗口句柄了。不过问题又来了——那个串口进程的窗口句柄怎么知道呢?~~~⊙﹏⊙b汗

好在知道子进程的句柄和ID号,看看能不能通过这个句柄和ID号得到其主窗口的句柄吧~~

 

尝试3:

查到网上http://blog.csdn.net/vcforever/archive/2005/03/11/317498.aspx一篇文章,正好是解决这个问题的。偷来用~

其实说的简单点就是使用E

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值