FileMapping用户类源代码(原创, 欢迎批评指正)

欢迎指正

// uc_filemapping.h: interface for the UC_FILEMAPPING class.
//
//

#if !defined(AFX_UC_FILEMAPPING_H__72FE31B2_7B02_442F_A754_66427E1C5946__INCLUDED_)
#define AFX_UC_FILEMAPPING_H__72FE31B2_7B02_442F_A754_66427E1C5946__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//
// 模块: 内存映射文件用户类
// 作者: 张旻
// 创建: 2002.01.16
// 说明:
//   利用内存映射文件进行进程之间的内存共享,
//   目前的32位应用程序寻址范围4GB, 不需要高位
//
#include "uc_log.h"

//自定义返回值
#define RET_FILEOPENNED  RET_USER + 1  //文件已经打开
#define RET_FILENOTOPENNED RET_USER + 2  //文件未打开
#define RET_BUFFERTOOBIG RET_USER + 3  //缓冲区过大
#define RET_BUFFEROVERFLOW RET_USER + 4  //缓冲区溢出
#define RET_FILEPROCESSING RET_USER + 5  //文件正在操作
#define RET_OFFSETOVERFLOW RET_USER + 6  //偏移量溢出

//共享内存的预留长度信息结构预定义
typedef struct tagMapInfo{

 DWORD  dwSizeHigh;     //高位文件大小
 DWORD  dwSizeLow;     //低位文件大小

 DWORD  dwSizeUsedHigh;    //高位使用大小
 DWORD  dwSizeUsedLow;    //低位使用大小

 char  szMappingName[_MAX_PATH]; //映射名称

 tagMapInfo()
 {
  dwSizeHigh = dwSizeLow = dwSizeUsedHigh = dwSizeUsedLow = 0;
  memset( szMappingName, 0, _MAX_PATH );
 }

}US_MAPINFO, *PUS_MAPINFO;

//分页门限
#define HIGH_MAX  0xFFFFFFFE      //高位最大值
#define LOW_MAX   0xFFFFFFFF - sizeof(US_MAPINFO) //低位最大值
#define INFO_LEN  sizeof(US_MAPINFO)    //头信息长度
#define NOPHYSICALFILE 0xFFFFFFFF      //不需要物理文件

class UC_FILEMAPPING : public UC_LOG 
{
public:
 //
 // 作者: 张旻
 // 创建: 2002.01.16
 // 功能: 获得文件使用大小
 // 参数:
 // 返回:
 //   文件使用大小
 //
 DWORD GetSizeUsed();
 //
 // 作者: 张旻
 // 创建: 2002.01.16
 // 功能: 获得文件大小
 // 参数:
 // 返回:
 //   文件大小
 //
 DWORD GetSize();
 //
 // 作者: 张旻
 // 创建: 2002.01.16
 // 功能: 写入映射文件
 // 参数:
 //   [in]  lpBuf   缓冲区
 //   [in]  nSize   缓冲区大小
 //   [in]  dwOffsetLow  偏移地址地位
 //   [in]  isAppend  追加写入
 // 返回:
 //   RET_BADARG     参数非法
 //   RET_BUFFERTOBIG   缓存区过大
 //   RET_BUFFEROVERFLOW   缓冲区溢出
 //   RET_FILENOTOPENNED   文件未打开
 //   RET_FILEPROCESSING   文件正在操作
 //   RET_FILEERR    文件操作失败
 //   RET_OK      操作成功
 //
 DWORD Write( LPVOID lpBuf, UINT &nSize, DWORD dwOffsetLow=0, BOOL isAppend=TRUE );
 //
 // 作者: 张旻
 // 创建: 2002.01.16
 // 功能: 读取映射文件
 // 参数:
 //   [in]  lpBuf   缓冲区
 //   [in]  nSize   缓冲区大小
 //   [in]  dwOffsetLow  偏移地址地位
 // 返回:
 //   RET_BADARG     参数非法
 //   RET_BUFFERTOBIG   缓存区过大
 //   RET_BUFFEROVERFLOW   缓冲区溢出
 //   RET_FILENOTOPENNED   文件未打开
 //   RET_FILEPROCESSING   文件正在操作
 //   RET_FILEERR    文件操作失败
 //   RET_OK      操作成功
 //
 DWORD Read( LPVOID lpszBuf, UINT &nSize, DWORD dwOffsetLow=0 );
 //
 // 作者: 张旻
 // 创建: 2002.01.16
 // 功能: 关闭映射文件
 // 参数:
 //   [in]  wantDump  需要导出
 // 返回:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于web课程设计源代码的要求,通常包括以下几个方面: 1. 布局和样式设计:设计一个合理的网页布局,包括使用HTML语言构建网页的结构、使用CSS语言添加网页的样式,使之具有良好的可读性和用户体验。 2. 动态交互设计:使用JavaScript语言实现网页的交互功能,例如表单的验证、图像的切换、菜单的下拉等。此外,还可以利用jQuery等库和框架简化开发过程。 3. 数据库设计与实现:如果web课程设计需要涉及到存储和查询数据的功能,就需要设计数据库。可以使用关系型数据库如MySQL或非关系型数据库如MongoDB,通过编写SQL语句或使用ORM(Object Relational Mapping)工具(如Django ORM)等方式实现数据库的操作。 4. 安全性设计:Web开发中追求安全性是重要的,要确保用户的数据和隐私得到保护。在源代码层面,可以采取一些措施,如输入验证、密码加密、防止SQL注入等,以避免常见的Web安全漏洞。 5. 响应式设计:随着移动设备的普及,构建响应式的网页对于用户体验十分重要。源代码中应该考虑到不同屏幕尺寸和设备型的适应性,使用CSS媒体查询和Flexbox/Grid等技术实现网页的自适应布局。 除了上述主要设计方面,源代码还应该具备良好的代码风格,包括代码的注释、模块化、可读性等,以便于维护和管理。同时,还应该考虑网页的性能优化,如压缩资源文件、减少网络请求等,以提高网页加载速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rick1126

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值