关于进程间互发信息
来源:互联网 发布:软件需求分析面试 编辑:程序博客网 时间:2024/06/08 10:53
想一想,在平时的处理程序的时候,我们都是在一个进程中进行处理,所以,在处理字符串的时候,我们都不用考虑太多的问题,处理什么样的数据和数据的发送都会在同一个进程中进行。
但是,假如要你负责一个程序要在两个不同的进程中交换数据,你会怎么办,你要想怎样做,一般的做法是这样,自定义一个消息,然后你就把这个数据放在这个消息附带的参数WPARAM wParam 与 LPARAM lParam中,不过这样只能限于非字符串的传递,只能传递数字,或者你更聪明一点,把字符编码,然后在另一个进程中解码,这样可以做成伪字符的数据传递。
不过,这样的方法都不错!
我在开始的时候,使用了字符地址作为消息参数进行传递,可是由于进程间都是独立的4GB内存空间,当接到我的字符消息的时候,就程序就误以为是自已的进程空间的地址,所以就把读取了这个地址,一般结果来看,不是乱码就是空字符串。
那么我们有什么方法可以在消息中进行字符串的传递呢?
我们可以使用两个Windows的消息分别进行一个字符串的两个进程间的传递,
一个消息是WM_SETTEXT。
一个消息是WM_COPYDATA。
以下我来分析这两个消息怎么实现,
最简单的是使用WM_SETTEXT的消息了,这个方法只是使用一个字符串的地址作为一个消息参数就可以实现了两个不同进程间的消息的互发了。
原因是因为这个消息会为这个字符串分配一个内存空间,在接收方就可以根据这个地址把这个字符串读取保存了
在接收方这样处理消息:
加入消息映射宏:
加入消息映射函数:
使用WM_COPYDATA:
这样就可以实现了不同进程间两个字符串之间的互发!
结束语:
这只是一些简单的方法,对这些感兴趣的或需要源代码的朋友,可以跟我联系。
- 关于进程间互发信息
- 关于进程间互发信息
- 关于进程间互发信息
- 检索关于当前进程的信息
- 进程信息
- 进程信息
- windows应用开发由浅入深(五)关于进程和线程--获取当前进程信息
- 获取进程信息(应用信息)
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- 关于进程
- Windows进程信息
- ODBC编程
- perl學習手記之散列的遍歷
- Guide to Assembly Language Programming in Linux
- Dropbox免费网盘高级使用技巧
- ResultSet may only be accessed in a forward direction
- 关于进程间互发信息
- 前言
- speech codec (G.711, G.723, G.726, G.729, iLBC)
- oracle 如何导出数据字典
- C23、结束处理程序
- 应一个朋友要求转:MyEclipse-7.5.0版注册码破解及激活操作
- 用visual web pack写个程序
- C22、插入DLL和挂接API
- awk学习笔记