⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memfile.h

📁 数字签名的例子
💻 H
字号:



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Header
#pragma once
#include <Windows.h>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CMemFile class
class CMemFile
{
private:
	HANDLE m_hFile;
	HANDLE m_hMapping;
	PVOID m_pvFile;
	DWORD m_dwSize;

public:
	operator DWORD() const {return m_dwSize;}
	operator PVOID() const {return m_pvFile;}
	operator PBYTE() const {return (PBYTE) m_pvFile;}
	operator PCHAR() const {return (PCHAR) m_pvFile;}
	operator PWCHAR() const {return (PWCHAR) m_pvFile;}
	BOOL operator !() {return (m_pvFile == NULL);}

public:
	CMemFile(PCTSTR ptzPath, BOOL bReadOnly = FALSE)
	{
		m_dwSize = 0;
		m_pvFile = NULL;
		m_hMapping = NULL;
		m_hFile = CreateFile(ptzPath,
			bReadOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE),
			bReadOnly ? FILE_SHARE_READ : (FILE_SHARE_READ | FILE_SHARE_WRITE),
			NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
		if (m_hFile != INVALID_HANDLE_VALUE)
		{
			m_dwSize = GetFileSize(m_hFile, NULL);
			if ((m_dwSize != 0) && (m_dwSize != INVALID_FILE_SIZE))
			{
				m_hMapping = CreateFileMapping(m_hFile, NULL, bReadOnly ? PAGE_READONLY : PAGE_READWRITE, 0, m_dwSize, NULL);
				if (m_hMapping)
				{
					m_pvFile = MapViewOfFile(m_hMapping, bReadOnly ? FILE_MAP_READ : FILE_MAP_ALL_ACCESS, 0, 0, 0);
				}
			}
		}
	}

	~CMemFile()
	{
		if (m_pvFile) UnmapViewOfFile(m_pvFile);
		if (m_hMapping) CloseHandle(m_hMapping);
		if (m_hFile != INVALID_HANDLE_VALUE) CloseHandle(m_hFile);
	}
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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