- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程间通信的四种方式
剪贴板
匿名管道
命名管道
邮槽
剪切板是将数据放到内存区域中,然后再取出来。
剪切板程序:(基于对话框的程序,利用剪切板进行通信的例子):
两个EDIT BOX,一个是发送数据,一个是接收数据,再放置两个按钮,一个是发送,一个是接受,当按下发送按钮,数据放到剪切板,接受按钮取出数据并显示。(可以把发送和接受的代码放到不同的进程中进行通信。)
void CClipBoardDlg::OnBtnSend() //将数据送到剪切板里面
{
// TODO: Add your control notification handler code here
if (OpenClipboard( ))
{
CString str;
EmptyClipboard();
GetDlgItemText(IDC_EDIT_SEND,str);
HANDLE hMem=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);//str.GetLength()+1多分配一个空字节
char *pBuf=(char*)GlobalLock(hMem);
strcpy(pBuf,str);
GlobalUnlock(hMem);
SetClipboardData(CF_TEXT,hMem);
CloseClipboard();
}
}
void CClipBoardDlg::OnBtnRecv()
{
// TODO: Add your control notification handler code here
if (OpenClipboard( ))
{
if (IsClipboardFormatAvailable(CF_TEXT))
{
HANDLE hdata=GetClipboardData(CF_TEXT);
char *pBuf=(char*)GlobalLock(hdata);
GlobalUnlock(hdata);
SetDlgItemText(IDC_EDIT_RECV,pBuf);
CloseClipboard();
}
}
}
下面创建一个匿名管道:(匿名管道只能在父子进程间通信)
创建一个单文档的程序(父程序。Parent),写入三个菜单:创建管道,写入数据,读取数据。并在VIEW类中加上命令响应函数。
为CParentView增加
private:
HANDLE hRead;
HANDLE hWrite;
CParentView::CParentView()
{
// TODO: add construction code here
hRead=NULL;
hWrite=NULL;
}
CParentView::~CParentView()
{
if (hRead)
{
CloseHandle(hRead);
}
if (hWrite)
{
CloseHandle(hWrite);
}
}
BOOL CreateProcess(
LPCTSTR lpApplicationName, // 若指定文件名,在当前目录下寻找可执行文件名,不会搜索,若没有找到,失败返回。不会自动加上EXE文件名。本例中的..\\Child\\Debug\\Child.exe,..是指返回到Parent的上一级目录。Parent和Child是平级.
LPTSTR lpCommandLine, // 若没加目录,自动加EXE扩展名。自动搜索。
LPSECURITY_ATTRIBUTES lpProcessAttributes, // 当调用CreateProcess创建新进程时,系统会自动创建进程内核对象和线程内核对象(用于进程主线程)并将它们的使用计数设置为2(创建的时候本身为1,创建时打开再加1,为2,所以后面要关闭),本参数和下一个是用来设定创建的新进程和线程的安全属性,以及指定父进程将来生成的其它线程是否可以继承他们的句柄。若为NULL,为默认的安全属性。
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
BOOL bInheritHandles, // handle inheritance option
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment
您可能关注的文档
- 视频服务器与DVR的优势.docx
- Windows虚拟内存不足几种解决方法.doc
- 2013年计算机二级Access考点练习和答案汇总.docx
- 第八章 10.客户常见问题.docx
- 塞班系统软件安装方法介绍.doc
- 提高动作准确性与速度.docx
- 历年软考系统分析师真题练习题和答案(一).doc
- 一个电脑公司技术员心得----(关于主机无法安装GHOST XP解决方法).doc
- 任务管理器 参数详细解释摘要.docx
- 《一林有话说》之关于录音转文字时整理的一些标准与要求.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
最近下载
- 文献综述中小企业成本控制研究.docx VIP
- (2025春新版本)人教版七年级历史下册全册教案.pdf
- 北京市一零一中学2023-2024学年七年级下学期期中考试英语试卷(含答案).pdf
- 物业管理服务报价表完整优秀版 .pdf VIP
- 文献综述--中小企业成本控制的研究.doc VIP
- 莒县鸿瑞矿业有限公司新型节能环保型石灰窑项目(三期)竣工环境保护验收监测报告.docx VIP
- 第9课 近代西方的法律与教化 教案-统编版(2019)高中历史选择性必修1国家制度与社会治理.pdf
- ZOOM声乐乐器L-12 快速入门 (Chinese)说明书用户手册.pdf
- 基于单片机的宠物喂养系统的设计与实现.docx
- 中小学(三阶魔方的复原)校本教材.doc VIP
文档评论(0)