• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++进程共享数据封装成类实例

C++进程共享数据封装成类实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++进程间通信,c++创建进程,c++结束进程,c++程序实例,c++项目开发实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++进程共享数据封装成类的方法,分享给大家供大家参考。具体方法如下:

ShareMemory.cpp源文件如下:

 
CShareMemory::CShareMemory(const    char* pszMapName, int nFileSize, BOOL bServer):m_hFileMap(NULL),m_pBuffer(NULL) 
{ 
    if (bServer) //是服务端,就创建 
    { 
        m_hFileMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, nFileSize, pszMapName); 
    } 
    else //否则就打开 
    { 
        m_hFileMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, pszMapName); 
    } 
    //把它映射到内存 
    m_pBuffer = ::MapViewOfFile(m_hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); 
} 
 
CShareMemory::~CShareMemory(void) 
{ 
    ::UnmapViewOfFile(m_pBuffer); 
    ::CloseHandle(m_hFileMap); 
}</div>

ShareMemory.h头文件如下:

#include <Windows.h> 
 
class CShareMemory 
{ 
public: 
    CShareMemory(const  char* pszMapName, int nFileSize=0, BOOL bServer=FALSE); 
    ~CShareMemory(void); 
    //属性 
    LPVOID GetBuffer() const  
    { 
        return m_pBuffer; 
    } 
 
    //实现 
private: 
    HANDLE m_hFileMap; 
    LPVOID m_pBuffer; 
};</div>

使用时用法如下:

服务端:

int main(int argc, char *argv[]) 
{ 
 
    //进程间内存共享 
    LPCTSTR lpName= "hello"; 
    LPCTSTR lpContent = "123456"; 
    CShareMemory* pShareMemory = new CShareMemory(lpName, 20, FALSE); 
    LPVOID lpBase = pShareMemory->GetBuffer(); 
    strcpy((char*)lpBase, lpContent); 
     
    printf("%s\n",(char*)pShareMemory->GetBuffer()); 
    getchar(); 
    return 0; 
}</div>

客户端:

int main(int argc, char *argv[]) 
{ 
 
    //进程间内存共享 
    LPCTSTR lpName= "hello"; 
    LPCTSTR lpContent = "123456"; 
    CShareMemory* pShareMemory = new CShareMemory(lpName, 20, FALSE); 
 
    printf("%s\n",(char*)pShareMemory->GetBuffer()); 
    getchar(); 
    return 0; 
}</div>

希望本文所述对大家的C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++进程共享数据封装成类实例
  • C++进程间共享数据实例
  • C++通过TerminateProess结束进程实例
  • c++获取进程信息列表和进程所调用的dll列表

相关文章

  • 2017-05-28最小生成树算法C语言代码实例
  • 2017-05-28C语言 格式化读写文件详解
  • 2017-05-28C++编程中的格式化输出详解
  • 2017-05-28基于errno返回值的对应错误码的详细介绍
  • 2017-05-28C语言模拟实现C++的继承与多态示例
  • 2017-05-28C++中MFC Tab Control控件的使用详解
  • 2017-05-28win32使用openfilename浏览文件窗口示例
  • 2017-05-28C++中char*转换为LPCWSTR的解决方案
  • 2017-05-28bmp 缩放代码(BMP位图任意放大 和缩小)
  • 2017-05-28常用排序算法整理分享(快速排序算法、希尔排序)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 解析C++中指向对象的指针使用
    • 解析在WTL下使用双缓冲的实现方法
    • 深入解析C++中的函数模板和函数的默认参数
    • 解析四则表达式的编译过程及生成汇编代码
    • 7种排序算法的实现示例
    • c语言输出字符串中最大对称子串长度的3种解决方案
    • 黑客帝国数字雨效果VC6源代码分享
    • 基于C/C++时间函数的使用详解
    • c++回调之利用sink示例
    • MFC中exe图标修改的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有