MFC制作的文件打包工具
由于个人以前对VC6.0比较熟悉,当然也尝试使用VS2008,还是感觉VC6.0比较简单明了!!!
1.编译工具:VC6.0
新建工程:新建->弹出框->工程->MFC AppWizarp(exe)->填上工程名
2.图形使用:基本控件如按钮、编辑框、标签等都是可以通过拉取来布局,右键属性修改一些设置如ID,名称等,双击生成函数会提示函数名命名。
3.按钮控件:在生成的函数里,就是按钮按下所要执行的事件。
4.编辑框:SetDlgItemText(IDC_FILEPATH_EDIT,filename);//在一个地址为IDC_FILEPATH_EDIT的editbox中显示文件名
5.CFile类的使用:CFileDialog opendlg (TRUE,_T("*"),NULL,OFN_OVERWRITEPROMPT, _T("所有文件(*.*;)|*.*||"),NULL);
if (opendlg.DoModal()==IDOK)
{
filename=opendlg.GetPathName();
}
if (opendlg.DoModal()==IDOK)
{
filename=opendlg.GetPathName();
}
CFileDialog Dlg( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
各个参数的意义说明如下:
bOpenFileDialog 为TRUE则显示打开文件对话框,为FALSE则显示保存文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
各个参数的意义说明如下:
bOpenFileDialog 为TRUE则显示打开文件对话框,为FALSE则显示保存文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
5.新建自己的类
插入->类->选择类的类型下的generic class->填上名字确定即可
6.文件的打包解包
直接上代码:
class packFile
{
public:
packFile();
virtual ~packFile();
int OpenMasFile(const char* path, const byte onlyOpen);
int WriteFileToPak(const char* path);
int ReadFileFromPak(const FilesMsg msg, byte* _dst);
int GetFileMessage( const char* path, FilesMsg* msg);
int CloseMasFile( void );
};
{
public:
packFile();
virtual ~packFile();
int OpenMasFile(const char* path, const byte onlyOpen);
int WriteFileToPak(const char* path);
int ReadFileFromPak(const FilesMsg msg, byte* _dst);
int GetFileMessage( const char* path, FilesMsg* msg);
int CloseMasFile( void );
};
// 打开包文件
int packFile::OpenMasFile(const char* path, const byte onlyOpen)
{
uint uWriteCount; // 写入文件信息次数
byte bIsNew = 0; // 是否新建的
int packFile::OpenMasFile(const char* path, const byte onlyOpen)
{
uint uWriteCount; // 写入文件信息次数
byte bIsNew = 0; // 是否新建的