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

📄 c_memory.h

📁 一个国人自己实现图像库的程序(有参考价值)
💻 H
字号:
//////////////////////////////////////////////////////////////////
//																//
//		用途 : 内存操作											//
//		创建 : [Foolish] / 2001-6-5								//
//		更新 :													//
//		主页 : http://crazybit.topcities.com/					//
//		邮箱 : crazybit@263.net									//
//									(c) 1999 - 2002 =USTC= 付黎	//
//////////////////////////////////////////////////////////////////
#ifndef		__FOO_MEMORY_H__
#define		__FOO_MEMORY_H__
#include <windows.h>
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

	/****************************************************************/
	/*				创建一块共享内存								*/
	/*		如果存在pMemName, 则不能创建, 返回NULL					*/
	/****************************************************************/
	void *  fooMallocSharedMemory (PCTSTR	pMemName,
								   int		iBlockSize,
								   HANDLE	* hMapping) ; // 不可为NULL

	/****************************************************************/
	/*				释放一块共享内存								*/
	/****************************************************************/
	void  fooFreeSharedMemory (void * pBaseAddr, HANDLE hMapping) ;

	/****************************************************************/
	/*				读/写一块共享内存								*/
	/****************************************************************/
	BOOL  fooReadSharedMemory (PCTSTR	pMemName,
							   BYTE		* pReceive,
							   int		iExpectBytes) ;

	BOOL  fooWriteSharedMemory (PCTSTR	pMemName,
								BYTE	* pWrite,
								int		iWriteBytes) ;

	/****************************************************************/
	/*			判断是否存在名为pMemName的共享内存					*/
	/****************************************************************/
	bool  fooIsExistSharedMemory (PCTSTR pMemName) ;

//===================================================================
inline void  fooFreeSharedMemory (void * pBaseAddr, HANDLE hMapping) {
	if (pBaseAddr != NULL)
		::UnmapViewOfFile (pBaseAddr) ;
	if (hMapping != NULL)
		::CloseHandle (hMapping) ;
}
inline bool fooIsExistSharedMemory (PCTSTR pMemName) {
	HANDLE	hMap = NULL ;
	if (pMemName != NULL)
	{
		hMap = ::OpenFileMapping (FILE_MAP_READ, FALSE, pMemName) ;
		if (hMap != NULL)
			::CloseHandle (hMap) ;
	}
	return hMap ? true : false ;
}

#ifdef __cplusplus
}
#endif
#endif

⌨️ 快捷键说明

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