
进程间通讯(IPC)
文章平均质量分 80
MailSloter
这个作者很懒,什么都没留下…
展开
-
进程间通讯——指针方式的内存读写
//进程间通讯的指针形式的内存访问#include#include#includeusing namespace std;BOOL EnableSeDebugPrivilege(IN const CHAR * PriviledgeName, BOOL IsEnable);typedef NTSTATUS(NTAPI *LPFN_NTWOW64READVIRTUALMEMORY6原创 2017-07-23 23:27:37 · 3785 阅读 · 0 评论 -
进程间通讯——内存映射/文件映射形式
内存映射/文件映射形式下的进程交通讯不分32位还是64位,是因为本质上使用的是系统物理页面(系统位数)。主要是三个函数:CreateFileMapping;MapViewOfFile(映射内存),OpenFileMapping。// FileSend.cpp : 定义控制台应用程序的入口点。//#include #includeint main(){ HANDLE M原创 2017-07-26 22:30:04 · 361 阅读 · 0 评论 -
进程间通讯--动态库的共享数据
因为这里是不同的进程同时加载一个动态库,所以要求两个进程的位数必须与dll相同,即只能使32位与32位通讯,64位与64位的通讯。其中的原理就是:设置某一块物理内存为“共享读共享写”,对其写的时候就不会触发操作系统的拷贝写。//Dll.cpp#include #include using namespace std;char __BufferData[MAX原创 2017-08-13 21:50:05 · 1211 阅读 · 0 评论 -
利用自定义消息(MFC界面)实现进程间通讯
使用了操作系统的消息队列,所以可以做到进程32位,64位通用!但是同样受限于此,只能做到四个字节(或者八个字节)的数字数据通讯!//server.cpp#include #include "resource.h"INT_PTR CALLBACK DialogProcedure(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar原创 2017-11-30 15:51:20 · 533 阅读 · 0 评论 -
进程间通讯—MFC三种消息传递数据
MFC消息类型:消息前缀:wm(系统消息),rm(注册消息),um(自定义消息)//自定义消息void CServerDlg::OnBnClickedButtonUserMessage(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); CWnd* DlgHwnd = FindWindow(NULL,L"Client");原创 2017-12-09 11:41:39 · 1511 阅读 · 0 评论 -
利用命名管道实现进程间通讯
管道服务器创建管道,管道客户端连接管道。32位,64位之间可以混合通信,主要代码如下:void CServerDlg::OnBnClickedButtonStartServer(){ UpdateData(TRUE); CString PipeFullPathData = L"\\\\.\\Pipe\\NamedPipePipe"; if (m_CEdit_Max_Connec原创 2017-12-23 21:01:31 · 567 阅读 · 0 评论 -
IPC—MailSlot邮槽
这里使用邮槽所体现的原理的和NamePipe管道类似,但比其更加简单。//刷新数据void CIPC_MailslotDlg::OnBnClickedFlush(){ DWORD dwNextSize = 0, dwMsgCount = 0, dwReadBytes = 0; if ( GetMailslotInfo ( this->hMailslot, NULL, &dwNextSi原创 2018-01-01 20:41:59 · 236 阅读 · 0 评论 -
进程间通讯IPC总结
1.各个IPC通讯的原理:ipc原理1:让两个进程各自的虚拟地址对应内存上同一个物理地址!(进程空间,内存空间)FileMapping—IPCPoint—IPCShareDllData—IPCipc原理2:利用操作系统消息队列的三种消息传递(自定义消息,系统消息,拷贝消息)UserMsg—IPCMsg—IPCipc原理3:利用其他方式(管道,邮筒)进行消息传原创 2018-01-01 21:49:07 · 277 阅读 · 0 评论