Windows IPC 进程间通信之共享内存
来源:互联网 发布:lnmp 查看php日志 编辑:程序博客网 时间:2024/05/18 02:02
1. 必须先创建共享内存,才能够打开
2. 关闭共享内存后,就无法打开
3. 使用Global则必须是管理员权限才能创建或打开
相当于要读写一个文件,必须先创建文件才能够打开,删掉文件后就无法打开。权限不够的话就无法读写
2. 关闭共享内存后,就无法打开
3. 使用Global则必须是管理员权限才能创建或打开
相当于要读写一个文件,必须先创建文件才能够打开,删掉文件后就无法打开。权限不够的话就无法读写
- // share_memory.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <Windows.h>
- #include <stdio.h>
- #include <conio.h>
- #include <tchar.h>
- #define BUF_SIZE 256
- TCHAR szName[]=TEXT("Global\\MyFileMappingObject");
- TCHAR szMsg[]=TEXT("Message from first process.");
- int p1();
- int p2();
- int _tmain(int argc, _TCHAR* argv[])
- {
- if ( argc == 1 )
- {
- p1();
- }
- else
- {
- p2();
- }
- return 0;
- }
- int p1()
- {
- HANDLE hMapFile;
- LPCTSTR pBuf;
- hMapFile = CreateFileMapping(
- INVALID_HANDLE_VALUE, // use paging file
- NULL, // default security
- PAGE_READWRITE, // read/write access
- 0, // maximum object size (high-order DWORD)
- BUF_SIZE, // maximum object size (low-order DWORD)
- szName); // name of mapping object
- if (hMapFile == NULL)
- {
- _tprintf(TEXT("Could not create file mapping object (%d).\n"),
- GetLastError());
- return 1;
- }
- pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object
- FILE_MAP_ALL_ACCESS, // read/write permission
- 0,
- 0,
- BUF_SIZE);
- if (pBuf == NULL)
- {
- _tprintf(TEXT("Could not map view of file (%d).\n"),
- GetLastError());
- CloseHandle(hMapFile);
- return 1;
- }
- CopyMemory((PVOID)pBuf, szMsg, (_tcslen(szMsg) * sizeof(TCHAR)));
- _getch();
- UnmapViewOfFile(pBuf);
- CloseHandle(hMapFile);
- return 0;
- }
- int p2()
- {
- HANDLE hMapFile;
- LPCTSTR pBuf;
- hMapFile = OpenFileMapping(
- FILE_MAP_ALL_ACCESS, // read/write access
- FALSE, // do not inherit the name
- szName); // name of mapping object
- if (hMapFile == NULL)
- {
- _tprintf(TEXT("Could not open file mapping object (%d).\n"),
- GetLastError());
- return 1;
- }
- pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object
- FILE_MAP_ALL_ACCESS, // read/write permission
- 0,
- 0,
- BUF_SIZE);
- if (pBuf == NULL)
- {
- _tprintf(TEXT("Could not map view of file (%d).\n"),
- GetLastError());
- CloseHandle(hMapFile);
- return 1;
- }
- MessageBox(NULL, pBuf, TEXT("Process2"), MB_OK);
- UnmapViewOfFile(pBuf);
- CloseHandle(hMapFile);
- return 0;
- }
0
上一篇:用可变参数宏(variadic macros)传递可变参数表
下一篇:error C2440: “类型转换” : 无法从“overloaded-function”转换为
相关热门文章
- LNK1123: 转换到 COFF 期间失...
- WIN7访问共享:0x80070035 找不...
- Delphi 2010下载+完美破解...
- vs2010调试C++程序时提示 无...
- VISIO,不规则封闭图形填充方...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- Windows IPC 进程间通信之共享内存
- 进程间通信IPC之--共享内存
- 进程间通信IPC之--共享内存
- 进程间通信IPC之--共享内存
- 进程间通信IPC之--共享内存
- 进程间通信(IPC)之共享内存
- 进程间通信--IPC之共享内存
- Linux 进程间通信(IPC)之三 --- 共享内存
- IPC进程间通信主题之共享内存
- 进程间通信总结 && IPC主题三之 共享内存
- Windows进程间通信之共享内存
- 进程间通信(IPC):共享内存
- Linux 进程间通信 (IPC) //共享内存
- 进程间通信(IPC)---共享内存
- 进程间通信IPC---共享内存
- Linux进程IPC浅析[进程间通信SystemV共享内存]
- 笔记五:进程间的通信(IPC通信之共享内存)
- 学习笔记——进程通信IPC之共享内存
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
- OPENSSL 小计
- Struts2-Mysql数据库访问
- 用可变参数宏(variadic macros)传递可变参数表
- The Reactive Extensions for JavaScript (RxJS)
- Windows IPC 进程间通信之共享内存
- error C2440: “类型转换” : 无法从“overloaded-function”转换为
- 猴子选大王
- torch入门笔记1:torch的使用
- dll 使用小结
- GUID制作
- 改变字符串中指定字符的颜色
- Windows服务处于已停止
- 示例八和示例九
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
鑫苑置业
鑫苑鑫中心
鑫苑名家
鑫苑世家
鑫苑物业
鑫茂苑
鑫茂花园
鑫茂东苑
鑫茂公寓
鑫茂
000836鑫茂科技
杨柳青鑫茂工业园招聘
潜龙鑫茂花园
鑫茂科技股票行情
鑫茂齐鲁科技城
鑫茂科技股份有限公司
鑫茂天财酒店
鑫茂青年酒店
天津鑫茂天财酒店
鑫茂科技 股票
鑫茂科技股吧
华苑鑫茂科技园
富通鑫茂千股千评
鑫荣
鑫诚
鑫谷
鑫谷gp700g
鑫谷gp600g
鑫谷f7
鑫谷rp650
鑫谷gp600g黑金版
鑫谷gp700g黑金版
鑫谷gp600p白金版
segotep
鑫谷核动力325pq
鑫谷光电
鑫达集团
鑫达钢铁
鑫达机械
聚鑫达开锁
鑫达木门