欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++進(jìn)程共享數(shù)據(jù)封裝成類實例

 更新時間:2014年10月15日 16:04:59   投稿:shichen2014  
這篇文章主要介紹了C++進(jìn)程共享數(shù)據(jù)封裝成類的方法,以實例形式講述了其封裝代碼與具體用法,具有一定的實用價值,需要的朋友可以參考下

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

ShareMemory.cpp源文件如下:

復(fù)制代碼 代碼如下:
#include "ShareMemory.h" 
 
CShareMemory::CShareMemory(const    char* pszMapName, int nFileSize, BOOL bServer):m_hFileMap(NULL),m_pBuffer(NULL) 

    if (bServer) //是服務(wù)端,就創(chuàng)建 
    { 
        m_hFileMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, nFileSize, pszMapName); 
    } 
    else //否則就打開 
    { 
        m_hFileMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, pszMapName); 
    } 
    //把它映射到內(nèi)存 
    m_pBuffer = ::MapViewOfFile(m_hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); 

 
CShareMemory::~CShareMemory(void) 

    ::UnmapViewOfFile(m_pBuffer); 
    ::CloseHandle(m_hFileMap); 
}

ShareMemory.h頭文件如下:

復(fù)制代碼 代碼如下:
#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; 
    } 
 
    //實現(xiàn) 
private: 
    HANDLE m_hFileMap; 
    LPVOID m_pBuffer; 
};

使用時用法如下:

服務(wù)端:

復(fù)制代碼 代碼如下:
#include "ShareMemory.h" 
int main(int argc, char *argv[]) 

 
    //進(jìn)程間內(nèi)存共享 
    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; 
}

客戶端:

復(fù)制代碼 代碼如下:
#include "ShareMemory.h" 
int main(int argc, char *argv[]) 

 
    //進(jìn)程間內(nèi)存共享 
    LPCTSTR lpName= "hello"; 
    LPCTSTR lpContent = "123456"; 
    CShareMemory* pShareMemory = new CShareMemory(lpName, 20, FALSE); 
 
    printf("%s\n",(char*)pShareMemory->GetBuffer()); 
    getchar(); 
    return 0; 
}

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

相關(guān)文章

最新評論