|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09>ļ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2008-11-09
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
namespace NFile64
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// ģ<><C4A3>: <20>ڴ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC>û<EFBFBD><C3BB><EFBFBD>
|
|
|
|
|
|
// ˵<><CBB5>:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>ڴ湲<DAB4><E6B9B2>
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
class CFileMappingBase : public CObject
|
|
|
|
|
|
{
|
|
|
|
|
|
DECLARE_DYNAMIC(CFileMappingBase)
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CFileMappingBase(void);
|
|
|
|
|
|
virtual ~CFileMappingBase(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ӳ<EFBFBD><D3B3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ij<EFBFBD><C4B3>ȡ<EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD>У<EFBFBD><D0A3>ļ<EFBFBD><C4BC><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ<EFBFBD><D6B7>64λֵ<CEBB><D6B5>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>ϵͳ<CFB5>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD>'\'<27>滻Ϊ<E6BBBB><CEAA>'_'
|
|
|
|
|
|
CString CreateMappingName(const CString& sName);
|
|
|
|
|
|
|
|
|
|
|
|
//Create and open/////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>䣬ȱʡ<C8B1><CAA1><EFBFBD><EFBFBD>ֻ<EFBFBD>ܶ<EFBFBD><DCB6>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>,<2C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|
|
|
|
|
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ڣ<EFBFBD><DAA3><EFBFBD>(32λѰַ)ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ƫ<EFBFBD>Ƶ<EFBFBD>ַnOffset,<2C><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>Զ<EFBFBD><D4B6><EFBFBD>nOffsetȡ<74>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL Open(
|
|
|
|
|
|
LPCTSTR lpszFilePath,
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize = 0,
|
|
|
|
|
|
ULONGLONG nOffset = 0,
|
|
|
|
|
|
DWORD dwFileDesiredAccess = GENERIC_READ,
|
|
|
|
|
|
DWORD dwMappingProtection = PAGE_READONLY,
|
|
|
|
|
|
DWORD dwViewDesiredAccess = FILE_MAP_READ
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD>Զ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ж<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>,<2C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ƕ<EFBFBD>Open<65><6E><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD>װ
|
|
|
|
|
|
BOOL OpenWrite(
|
|
|
|
|
|
LPCTSTR lpszFilePath,
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize/* = 0*/,
|
|
|
|
|
|
ULONGLONG nOffset/* = 0*/
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
BOOL MapFile(
|
|
|
|
|
|
HANDLE hFile,
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize = 0,
|
|
|
|
|
|
ULONGLONG nOffset = 0,
|
|
|
|
|
|
DWORD dwMappingProtection = PAGE_READONLY,
|
|
|
|
|
|
DWORD dwViewDesiredAccess = FILE_MAP_READ
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//ֱ<>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD>ڴ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OpenMapping<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
|
BOOL MapSharedMem(
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize, //>0
|
|
|
|
|
|
BOOL* pbAlreadyExisted = NULL,
|
|
|
|
|
|
LPSECURITY_ATTRIBUTES lpsa = NULL,
|
|
|
|
|
|
DWORD dwMappingProtection = PAGE_READWRITE,
|
|
|
|
|
|
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OpenMapping<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ治<DAB4><E6B2BB>ʱֱ<CAB1><D6B1>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2><EFBFBD>ļ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ڴ<EFBFBD><DAB4>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>⣩
|
|
|
|
|
|
BOOL MapFileSharedMem(
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize, //>0
|
|
|
|
|
|
BOOL* pbAlreadyExisted = NULL,
|
|
|
|
|
|
LPSECURITY_ATTRIBUTES lpsa = NULL,
|
|
|
|
|
|
DWORD dwMappingProtection = PAGE_READWRITE,
|
|
|
|
|
|
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//Open mapping//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
BOOL OpenMapping(
|
|
|
|
|
|
LPCTSTR lpszMappingName,
|
|
|
|
|
|
SIZE_T nMappingSize = 0, //default max. object size
|
|
|
|
|
|
ULONGLONG nOffset = 0, //default map entire file
|
|
|
|
|
|
DWORD dwViewDesiredAccess = FILE_MAP_READ //<2F><>дʱ<D0B4><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊ FILE_MAP_ALL_ACCESS
|
|
|
|
|
|
);
|
|
|
|
|
|
//Remap view///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>4Gʱ<47><CAB1><EFBFBD><EFBFBD>Ҫӳ<D2AA><D3B3><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><CEA3>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>ƫ<EFBFBD>Ƽ<EFBFBD>ӳ<EFBFBD>䳤<EFBFBD><E4B3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
BOOL OpenNextMapping(
|
|
|
|
|
|
SIZE_T nMappingSize,
|
|
|
|
|
|
ULONGLONG nOffset
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//Write/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><>ӳ<EFBFBD><D3B3><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
BOOL Save(
|
|
|
|
|
|
void* lpBaseAddress=NULL, //Ϊ<><CEAA>ʱ<EFBFBD><CAB1>ʾдȫ<D0B4><C8AB>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
SIZE_T dwNumberOfBytesToFlush=0 //Ϊ0ʱ<30><CAB1>ʾ<EFBFBD><CABE>lpBaseAddress<73><73>ַ<EFBFBD><D6B7>д<EFBFBD><D0B4><EFBFBD><EFBFBD>β
|
|
|
|
|
|
);
|
|
|
|
|
|
BOOL SaveAs(LPCTSTR lpFileName); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
DWORD GetErrorMessage(bool bMessageBox=true); //<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44>,<2C><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>һ<EFBFBD><D2BB>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
BOOL IsCanWrite(void); //<2F>ж<EFBFBD><D0B6>Ѵ<D1B4>ӳ<EFBFBD><D3B3><EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><D6A7>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL IsOpen(void); //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
void Close(void); //<2F>ر<EFBFBD>ӳ<EFBFBD>䣬ͬUnmap()
|
|
|
|
|
|
void Unmap(void); //<2F>ر<EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
|
void* GetData(void); //<2F><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>Ŀ<EFBFBD>ʼָ<CABC><D6B8>
|
|
|
|
|
|
SIZE_T GetMappingSize(void); //<2F><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>СʱΪ0
|
|
|
|
|
|
ULONGLONG GetOffset(void); //<2F><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
HANDLE GetHandle(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC>ľ<EFBFBD><C4BE><EFBFBD>
|
|
|
|
|
|
ULONGLONG GetPosition(void); //<2F><><EFBFBD>õ<EFBFBD>ǰλ<C7B0><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
BOOL Seek(ULONGLONG nOffset, int nOrigin); //<2F><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>ʼʱnOffset<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>,<2C><>Ϊ<EFBFBD><CEAA>βʱ<CEB2><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>䳤<EFBFBD>ȵ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
SIZE_T Read(char* value, SIZE_T nLength); //<2F>ӵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>괦<EFBFBD><EAB4A6>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>value<75>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nLength<74><68><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1>µ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
char* GetCursor(void); //<2F><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
|
|
|
|
|
|
//Other////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><>̬<EFBFBD><CCAC>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ϵͳ<CFB5>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>õ<EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>С<EFBFBD>ڴ浥λ,<2C><><EFBFBD><EFBFBD>Windows<77><73><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ̶<C8B9>Ϊ64KB
|
|
|
|
|
|
DWORD GetSysAllocationGranularity(void);
|
|
|
|
|
|
ULONGLONG GetFileLength(void); //<2F><><EFBFBD>ñ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC>ij<EFBFBD><C4B3><EFBFBD>
|
|
|
|
|
|
CString GetFileName(void); //<2F><><EFBFBD>ñ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void AfterMapViewSucceed(void);
|
|
|
|
|
|
char* m_lpCursor;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
void* m_pData;
|
|
|
|
|
|
HANDLE m_hMapping; //ӳ<><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
HANDLE m_hPhysicsFile; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪOpenMappingʱΪ<CAB1><CEAA>
|
|
|
|
|
|
ULONGLONG m_nFileLength; //<2F><>ǰ<EFBFBD><C7B0>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD><C4BC>ij<EFBFBD><C4B3>ȣ<EFBFBD><C8A3><EFBFBD>ΪOpenMappingʱΪ0
|
|
|
|
|
|
CString m_strFileName; //<2F><>ǰ<EFBFBD><C7B0>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ΪOpenMappingʱΪ<CAB1><CEAA>
|
|
|
|
|
|
|
|
|
|
|
|
DWORD m_dwAlign; //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>С<EFBFBD>ڴ浥λ,<2C><><EFBFBD><EFBFBD>Windows<77><73><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ̶<C8B9>Ϊ64KB
|
|
|
|
|
|
ULARGE_INTEGER m_nOffset; //ƫ<><C6AB>
|
|
|
|
|
|
SIZE_T m_nMappingSize; //ӳ<>䳤<EFBFBD><E4B3A4>
|
|
|
|
|
|
DWORD m_dwViewDesiredAccess;
|
|
|
|
|
|
|
|
|
|
|
|
BOOL MapView(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úõIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>ַ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
using namespace NFile64;
|
|
|
|
|
|
|
|
|
|
|
|
ULONGLONG GetFileLength(LPCTSTR lpFileName); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ֵ<0ʱ<30><CAB1>ʾ<EFBFBD><CABE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
inline void* CFileMappingBase::GetData(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline SIZE_T CFileMappingBase::GetMappingSize(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_nMappingSize;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline HANDLE CFileMappingBase::GetHandle(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_hMapping;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline ULONGLONG CFileMappingBase::GetOffset(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_nOffset.QuadPart;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline char* CFileMappingBase::GetCursor(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_lpCursor;
|
|
|
|
|
|
}
|