WEB开发网
开发学院软件开发VC 使用微软的FCI/FDI库进行文件压缩 阅读

使用微软的FCI/FDI库进行文件压缩

 2006-07-20 11:41:55 来源:WEB开发网   
核心提示: FDI包括4个API,FDICreate 创建 FDI contextFDIIsCabinet 判断是否为CAB压缩文件,使用微软的FCI/FDI库进行文件压缩(2),是则返回其属性FDICopy 解压FDIDestroy 销毁 FDI context HFCI DIAMONDAPI FD

FDI包括4个API。

FDICreate 创建 FDI context

FDIIsCabinet 判断是否为CAB压缩文件,是则返回其属性

FDICopy 解压

FDIDestroy 销毁 FDI context HFCI DIAMONDAPI FDICreate(//参数与FCI相应参数差不多
  PFNALLOC     pfnalloc,
  PFNFREE     pfnfree,
  PFNOPEN     pfnopen,
  PFNREAD     pfnread,
  PFNWRITE     pfnwrite,
  PFNCLOSE    pfnclose,
  pfnseek,
  int      cpuType,// CPU类型,32位FDI忽略此参数
  PERF      perf
)
BOOL DIAMONDAPI FDIIsCabinet(
  HFDI       hfdi,    //FDI context
  int       hf,       //打开的文件句柄
  PFDICABINETINFO   pfdici  //返回压缩文件的一些属性
)
BOOL FAR DIAMONDAPI FDICopy(
  HFDI     hfdi,
  char FAR   *pszCabinet, //待解压文件名
  char FAR   *pszCabPath, //待解压文件的路径
  int      flags,   //保留,现在必须为0
  PFNFDINOTIFY pfnfdin,  //回调函数,用来处理FDI的通知
  PFNFDIDECRYPT pfnfdid,  //保留,现在必须为NULL
  void FAR   *pvUser   //作为参数传给回调函数pfnfdin,这里设为NULL
)

注意事项:

1、 用到的库CABINET.DLL,在安装操作系统时已经有了。我们可以用它生成lib库,具体方法可以参照《VC知识库》第二十期。

2、 一个context只能在创建他的线程使用,如果要使用多线程必须创建多个context。

3、 水平有限,具体以微软提供的文档为准。

上一页  1 2 

Tags:使用 微软 FCI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接