///
// ShareMem.cpp文件

#include <stdio.h>
#include <windows.h>

void main()
{
char szName[] = "08ShareMem"; // 内存映射对象的名称
char szData[] = "123456"; // 共享内存中的数据
LPVOID pBuffer; // 共享内存指针

// 首先试图打开一个命名的内存映射文件对象
HANDLE hMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, szName);
if(hMap != NULL)
{
// 打开成功,映射对象的一个视图,得到指向共享内存的指针,显示出里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
printf(" 读出共享内存数据:“%s”\n", (char*)pBuffer);
}
else
{
// 打开失败,创建之
hMap = ::CreateFileMapping(
INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
strlen(szData) + 1,
szName);

// 映射对象的一个视图,得到指向共享内存的指针,设置里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
strcpy((char*)pBuffer, szData);

printf(" 写入共享内存数据:“%s”\n", (char*)pBuffer);
}

getchar();

// 解除文件映射,关闭内存映射文件对象句柄
::UnmapViewOfFile(pBuffer);
::CloseHandle(hMap);

return;
}

第八章 内存共享 windows程序设计王艳平版相关推荐

  1. 第八章 PE文件 windows程序设计 王艳平版

    /// // ValidPE.h文件 #include <afxwin.h> class CMyApp : public CWinApp { public: virtual BOOL In ...

  2. 第七章 目录监视 windows程序设计王艳平版

    // DirDialog.h文件 #ifndef __DIRDIALOG_H_ #define __DIRDIALOG_H_ #include <shlobj.h> class CDirD ...

  3. 第九章 keyhookdll windows程序设计王艳平版

    /// // KeyHookLib.h文件 // 定义函数修饰宏,方便引用本DLL工程的导出函数 #ifdef KEYHOOKLIB_EXPORTS #define KEYHOOKLIB_API __ ...

  4. 修改内存地址 windows程序设计,王艳平

    /// // 02MemRepair.cpp文件 #include "stdafx.h" #include "windows.h" #include " ...

  5. 第九章 hook windows程序设计 王艳平版

    // 09HookDemo.cpp文件 #include <windows.h> #include <stdio.h> // 挂钩指定模块hMod对MessageBoxA的调用 ...

  6. windows程序设计 王艳平版

    // 02CreateProcess.cpp文件 #include "stdafx.h" #include <windows.h> #include <stdio ...

  7. 第三章 windows程序设计 王艳平版

    /// // CountErr.cpp文件 #include <stdio.h> #include <windows.h>  #include <process.h> ...

  8. 第三章 同步 Windows程序设计 王艳平版

    /// // CriticalSection.cpp文件 #include <stdio.h> #include <windows.h> #include <proces ...

  9. 第三章 事件 windows程序设计 王艳平版

    /// // EventDemo.cpp文件 #include <stdio.h> #include <windows.h> #include <process.h> ...

最新文章

  1. 如果中国要做自己的GPT-3,一定离不开这家公司的算力
  2. go语言笔记——defer作用DB资源等free或实现调试
  3. php--点赞功能的实现
  4. 【Consul】Consul实践指导-健康检查(Checks)
  5. 作业一 郝树伟 1101210664
  6. 重新审视自己和自己的目标
  7. html table nei边框线,GitHub - meichuanneiku/TableCell: 在TableBank的基础上,进一步标注到单元格精度,利用目标检测/分割实现单元格定位。...
  8. listview添加列
  9. Visual Stdio平台工具集以及配置
  10. 生产者消费者_【Java面试】实现生产者消费者模式
  11. 文件夹复制命令 linux,linux拷贝文件夹命令
  12. 在点光源的基础上利用光域网来分布光的传播范围及方向_daiding
  13. windows上必备的提升效率的软件
  14. 蓝桥杯嵌入式CT117E硬件开发平台经验分享11 | 第九届蓝桥杯国赛题
  15. Arcgis学习1:arcgis下载and画一个省份
  16. Surface reconstruction from unorganized points
  17. 大学必考计算机软件cad,大学CAD考试试题单选多选作图操作题.doc
  18. java长方体的父类_编写java程序,输入一个长方体的长、宽、高,求长方体的表面积和体积,并将结果显示...
  19. TSN算法的PyTorch代码解读(训练部分)
  20. 计算机本科核心课程教学视频,绝对经典,有空温习温习~

热门文章

  1. 20221008 今天的世界发生了什么
  2. 赛门铁克企业版服务器重装恢复
  3. 个人邮箱申请邮箱会员怎么注册,成为会员后有什么好处?
  4. Linux alias命令详解
  5. 如何更好的使用google
  6. linux桌面版远程控制软件,ubuntu64位ARM版本飞腾可用
  7. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~6地图编辑器-初始化
  8. 抖音4.0热门技术 视频怎么修改dm5值
  9. 热点的ap频段哪个快_我告诉你热点的ap频段什么意思
  10. 一筐鸡蛋编程解题C语言,求解:一筐鸡蛋:9个9个拿正好拿完8个8个拿还剩1个