memshare.cpp

来自「两台PC电脑间数据的通讯,这是主发送端的VC源码」· C++ 代码 · 共 75 行

CPP
75
字号
// MemShare.cpp: implementation of the CMemShare class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MemShare.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMemShare::CMemShare()
{

}

CMemShare::~CMemShare()
{

}

LPSTR CMemShare::MemShareWrite(CString strMemName,long lMemSize)
{
    LPSTR lpMsg;
    hMap = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL,
                           PAGE_READWRITE, 0, lMemSize, strMemName);
    if (hMap == NULL)
    {
        lpMsg=NULL;
		return lpMsg;
    }
    lpMsg = (LPSTR)MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0);
    if (lpMsg == NULL)
    {
       return lpMsg;
	}
    return lpMsg;
}

LPSTR CMemShare::MemShareRead(CString strMemName, long lMemSize)
{   LPSTR lpMsg;
    hMap = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL,
                            PAGE_READONLY, 0, lMemSize, strMemName);//PAGE_READONLY
    if (hMap == NULL)
    {
        lpMsg=NULL;
		return lpMsg;
    }
    lpMsg = (LPSTR)MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0);
    if (lpMsg == NULL)
    {
       return lpMsg;
	}
    return lpMsg;

}

BOOL CMemShare::MemCloseShare(LPSTR lpMsg,HANDLE hCloseMap)
{  
	BOOL bClose;
    bClose=UnmapViewOfFile(lpMsg);
    if (hCloseMap != NULL) 
	{ 
		CloseHandle(hCloseMap); 
		hMap = INVALID_HANDLE_VALUE; 
	} 
	return bClose;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?