社区
C++ 语言
帖子详情
怎么样实现两个进程间通讯,在C++中!
hdp4820
2004-03-25 10:44:50
就是另一个进程要调用这个进程中的数据,在这个进程关闭之前要完成.
怎么去通知那个进程这边已经准备好了.可以来读数据了.
我知道用sendmessage.但是怎么用就不知道了.两个进程都是C++做的小程序.
...全文
308
10
打赏
收藏
怎么样实现两个进程间通讯,在C++中!
就是另一个进程要调用这个进程中的数据,在这个进程关闭之前要完成. 怎么去通知那个进程这边已经准备好了.可以来读数据了. 我知道用sendmessage.但是怎么用就不知道了.两个进程都是C++做的小程序.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baojian88888
2004-03-25
打赏
举报
回复
方法有很多
简单的可以用 WM_COPYDATA 消息,查 MSDN
Darkay_Lee
2004-03-25
打赏
举报
回复
就是管道,共享内存等方法
Darkay_Lee
2004-03-25
打赏
举报
回复
应该IPC才对,.^_^。
Darkay_Lee
2004-03-25
打赏
举报
回复
RPC的许多方法都可以。甚至可以建立一个TCP连接也是可以的,.^_^。
icenl
2004-03-25
打赏
举报
回复
up
autoegg
2004-03-25
打赏
举报
回复
学习学习,呵呵
wxdvc
2004-03-25
打赏
举报
回复
发送方:
void __fastcall WXD1::Func()
{
COPYDATASTRUCT cds;
cds.dwData=sizeof(COPYDATASTRUCT);
cds.cbData=Data.Length();
cds.lpData=(LPVOID)Data.c_str();
HWND hWnd=::FindWindow(NULL,"title");
if(hWnd) ::SendMessage(hWnd,WM_COPYDATA,NULL,(LPARAM)&cds);
}
接收方:
void __fastcall WXD2::WndProc(TMessag &Message)
{
if(Message.Msg==WM_COPYDATA)
{
COPYDATASTRUCT *cds;
char* DataBuf;
cds=(COPYDATASTRUCT*)Message.LParam;
.
.
.
}
WXD2::WndProc(Message);
}
hdp4820
2004-03-25
打赏
举报
回复
//这是另一部分
//现在由于没办法通信,我只有用最原始的办法了 system(...)调用已经做好的那部分了。
//其实也就成了子进程的问题去了啦。呵呵。
#include<windows.h>
#include<iostream>
using namespace std;
#define TEST4 "d:\\hdp\\FileMap\\FM_test4\\Debug\\FM_test4.exe"
#define MAP_STR "This is xQuant test!"
void main()
{
HANDLE hFilemap=CreateFileMapping((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, 100, "SHARE");
LPVOID pVoid=MapViewOfFile(hFilemap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
memset(pVoid,0,100);
strcpy((char*)pVoid,MAP_STR);
char *str=(char*)pVoid;
cout<<"The Str Is:"<<str<<endl;
system(TEST4); //////就是这个玩意,已经编译好的exe。用它。不然还没等你
CloseHandle(hFilemap);///去用就已经释放完了,什么都没有了。只有在还没有
/////释放之前去用了。大家看有什么办法不?
if(!UnmapViewOfFile(pVoid))
cout<<"the Mapping Cannot Uninstall !"<<endl;
else
cout<<"The Mapping Uninstall !"<<endl;
}
hdp4820
2004-03-25
打赏
举报
回复
///这是一部分。
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
HANDLE hFilemap=OpenFileMapping(FILE_MAP_WRITE,FALSE,"SHARE");
if(!hFilemap)
{
cout<<"cannot find the File Map"<<endl;
return;
}
LPVOID pVoid=MapViewOfFile(hFilemap,FILE_MAP_ALL_ACCESS,0,0,0);
if(!pVoid)
{
cout<<"cannot find the Map View, Return!"<<endl;
return;
}
char* str=(char *)pVoid;
cout<<"The Mapping Str Is:"<<str<<endl;
}
wshcdr
2004-03-25
打赏
举报
回复
希望到源代码~~~
C++
语言基础视频教程
C++
语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍
C++
语言
中
的封装、数据隐藏、继承、多态的
实现
等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性
实现
等。课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用
C++
语言解决问题,具备进一步学习利用
C++
开发应用程序的基础。
C++
进程
间
通信 详解2
文章目录 一、概述二、
进程
间
通信概念及方法1. 管道的概念2. pipe3. 管道的读写行为4. 管道缓冲区大小5. 管道优劣6. FIFO7. 共享存储映射8. mmap函数9. munmap函数10. mmap九问11. mmap父子
进程
间
通信12. 匿名映射13. mmap无血缘关系
进程
间
通信 3. 练习 一、概述 二、
进程
间
通信概念及方法 Linux环境下,
进程
地址空
间
相互独立,每个
进程
各自有不同的用户地址空
间
。任何一个
进程
的全局变量在另一个
进程
中
都看不到,所以
进程
和...
C++
进程
间
通信的多种方式及
实现
多
进程
通信
C++
进程
间
通信的4
中
方式
C++
进程
间
通信
进程
间
通讯
的四种方式:剪贴板、匿名管道、命名管道和邮槽剪切板
C++
进程
间
通信
多
进程
是指在一个程序
中
同时运行多个独立的
进程
,每个
进程
都有自己的独立的内存空
间
和执行环境。
进程
间
通信是指不同
进程
之
间
进行数据交换和共享资源的方式。
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章