welcome to my file  and memory system

project             name: file and memory system
project               role: leader and main  developer
project     technique: vs 2005 ,c/c++,MFC
project introduction: imitating the file and memory system of operating system
project  core   code:

///file system
#pragma once

#include "CMyFileManagerClass.h"
#include "myFileManagerDlg.h"
#include "afxcmn.h"
// CFileManager dialog

class CFileManager : public CDialog
{
 DECLARE_DYNAMIC(CFileManager)

public:
 CFileManager(CWnd* pParent = NULL);   // standard constructor
 CFileManager(int FCBNumbers,CWnd* pParent = NULL);//创建新的文件系统
 CFileManager(CString filePath,CWnd* pParent = NULL);//打开已经存在的文件系统
 virtual ~CFileManager();

// Dialog Data
 enum { IDD = IDD_DIALOG1 };

protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

 DECLARE_MESSAGE_MAP()

public:
   //////////////////data
 CMyFileManager *pMyFileManager;//文件管理器
 int nFCBNumber;//新建文件系统的FCB个数
 CString myFilePath;//打开文件系统的路径
 int nWay;//选择的新建的文件还是文件夹
 bool bIsExpand;//表示树型控件是否展开
public:
 CListCtrl myFileListCtrl;
 CTreeCtrl myFileTreeCtrl;
 HTREEITEM hFocusItem;
 
 virtual BOOL OnInitDialog();
 afx_msg void OnClose();
 afx_msg void OnBnClickedButtonnew();
 afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
 afx_msg void OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult);
 afx_msg void OnBnClickedButtondelete();
 afx_msg void OnBnClickedButtonopen();
 afx_msg void OnHdnItemdblclickList1(NMHDR *pNMHDR, LRESULT *pResult);
 afx_msg void OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult);
 afx_msg void OnTvnItemexpandedTree1(NMHDR *pNMHDR, LRESULT *pResult);
 afx_msg void OnBnClickedButtonup();
 afx_msg void OnBnClickedSavesys();
};
 ////memory system

struct memoryBlock
{
 bool isUsed;
 int lowAddress;
 int highAddress;
 int size;
 int  programID;//当内存块被使用的时候就被标示为 正在使用它的程序ID
 memoryBlock *next;
 memoryBlock(){
  isUsed=false;
  lowAddress=0;
  highAddress=0;
  size=0;
  programID=0;
  next=NULL;
 };
 void Draw(CDC *pDC);
};

class memoryManager//这个就是管理内存的类
{
private:
 memoryBlock* memoryList;
 int nBlocks;
 bool bMemReArrange;
public:
 memoryManager();//初始化的时候是把640KB的内存都清成空闲状态
 bool NewMemory(memoryBlock *pMem,CmemoryManagementDlg *pView);//用于分配一个内存块
 bool BestNewMemory(memoryBlock *pMem,CmemoryManagementDlg *pView);
 bool FreeMemory(int nID,CDC *pDC);//用于free一个内村块
 void DrawMemoryStatus(CDC *pDC);//将内存的状态显示出来
 void DrawPanel(CDC *pDC);
};



 
Make a Free Website with Yola.