国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++進程共享數據封裝成類實例

2020-01-26 15:14:04
字體:
來源:轉載
供稿:網友

本文實例講述了C++進程共享數據封裝成類的方法,分享給大家供大家參考。具體方法如下:

ShareMemory.cpp源文件如下:

復制代碼 代碼如下:
#include "ShareMemory.h" 
 
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); 
}

ShareMemory.h頭文件如下:

復制代碼 代碼如下:
#pragma once 
#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; 
};

使用時用法如下:

服務端:

復制代碼 代碼如下:
#include "ShareMemory.h" 
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; 
}

客戶端:

復制代碼 代碼如下:
#include "ShareMemory.h" 
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; 
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金阳县| 蒲江县| 于田县| 康乐县| 庐江县| 横山县| 黑河市| 呼和浩特市| 瑞安市| 鹿泉市| 贡嘎县| 彭州市| 徐汇区| 亚东县| 阿巴嘎旗| 玉门市| 南阳市| 宜昌市| 平塘县| 鸡西市| 柘城县| 宾川县| 左贡县| 定边县| 北流市| 泰安市| 时尚| 那曲县| 莱州市| 梨树县| 泽普县| 曲阜市| 平顺县| 昭觉县| 介休市| 团风县| 璧山县| 司法| 夏河县| 海原县| 咸阳市|