许多Windows程序开发者喜欢使用WM_COPYDATA来实现一些进程间的简单通信(笔者也正在学习共享内存的一些知识来实现一些更高级的通信),这篇文章描述了笔者在使用这项技术时候的一些总结以及所遇到的一个问题回顾和分析. 进程通讯的相关知识 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯.常用的方法有 使用内存映射文件 通过共享内存DLL共享内存 使用SendMessage向另一进程发送WM_COPYDATA消息 比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种…
http://blog.csdn.net/guopengzhang/article/details/5528260 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区.但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件.除此以外,那就是双方都可以访问的外设了.在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记…
前言 如今缓存成为了优化网站性能的首要利器,缓存使用的好,不仅能让网站性能提升,让用户体验变好,而且还能节约成本(增加一台缓存服务器可能就节约好几台机器):那平时小伙伴们都使用哪些缓存方式呢?这里就来和小伙伴们一起来回顾一下. 正文 缓存的作用其实很明确,如下两方面: 提升数据的获取速度 通常用在获取数据速度要求比较高的场景,比如一些和设备通信的软件,对时间的要求比较高,如果每次都从数据库读数据会导致消耗多余的时间. 减轻后台应用或数据库服务器的负载 对于高并发场景的系统,如果每次请求都打到数据…
http://blog.csdn.net/ao929929fei/article/details/6316174 接收数据的一方 ON_WM_COPYDATA() afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct); 代码片段: BOOL CClientDemoDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { if (pCopyData…
一种新的不使用左右子树递归进行树高计算的方法,使用层次遍历 树的存储方式: 1.本题提供的一种思路: 使用(邻接表的思想)二维数组(vector[n])表示树,横坐标表示 父节点,每一行表示孩子. 能够很轻松的使用dfs进行遍历 优点: 只需要知道输入的父和子的值,不需要清楚整个树的结构, 能够方便的使用深搜遍历,计算树高:dfs(root,high): 缺点: 占空间太大,提前要知道节点数的上限 2.双亲表示法 每个节点只有一个指向父节点的指针, 优点: 能够方便的从叶节点往回找,空间小 缺点…
管道 优点 管道文件不占磁盘空间,打开管道时在内存中分配空间: 管道读端会在读取完管道内数据后自动进入阻塞,直到写端再次写入数据: 缺点 管道是半双工的,数据只能从一个方向上流动: 管道大小 PIPE_SIZE 限制为 64k:   共享内存 优点 共享内存是最快的一种 IPC,因为客户端和服务器共享一块给定的存储区,不需要在之间复制: 共享内存可以让多个进程同时共享一个存储空间: 共享内存大小没有上限,也不存在单向的限制: 缺点 共享内存中并未提供同步机制,多个进程同时访问空间时需要信号量进行…
管道: 它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信消息队列: 用于运行于同一台机器上的进程间通信,它和管道很相似,是一个在系统内核中用来保存消息的队列,它在系统内核中是以消息链表的形式出现.消息链表中节点的结构用msg声明.共享内存: 共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制.通常由一个进程创建一块共享内存区,其余进程对这块内存区进行 读写.得到共享内存有两种方式:映射/dev/mem…
WINCE下进程间通信常用的方式有:剪贴板(Clipboard),网络套接字(Socket),WM_COPYDATA消息,共享内存,管道(消息队列),注册表等 剪贴板 ///////////////////////////剪贴板发送数据////////////////////////////////// ) { //把数据放入剪贴板,并发送一个键盘粘贴消息给当前获得焦点的输入框. HGLOBAL hMemClip; //指向分配的内存块 if (AfxGetMainWnd()->OpenClip…
WINCE下进程间通信(一) 在WINCE开发中经常需要在不同的进程之间传递.共享数据,总结了一下,WINCE下进程间通信常用的方式有:Windows消息,共享内存,socket通信,管道,全局原子,邮槽等,下面就分别对这几种方法做个小结.(当然还可以采用注册表,磁盘文件以及数据库方式,只是这几种方式的通信效率和实时性比较低,所以一般不考虑.) 一.Windows消息 通过Windows消息,可以很方便的在进程与进程之间传递数据.对于传递像字符串这种小的数据,可以直接将字符串以消息参数wPara…
17 1.进程间通信4种方式 2.OpenClipboard打开剪贴板 3.EmptyClipboard清空剪贴板,并把所有权分配给打开剪贴板的窗口 4.SetClipboardData设置剪贴板数据格式 5.GlobalAlloc从堆中分配内存 6.GlobalLock对全局内存对象加锁,返回内存指针 7.GlobalUnlock解锁内存对象 8.发送剪贴板步骤: OpenClipboard打开剪贴板 EmptyClipboard清空剪贴板 SetClipboardData设置数据类型 Glo…