CnPack Forum » CnVCL 组件包 » [BUG报告]CnMD5有BUG


2007-5-18 10:07 hbxfwjww
[BUG报告]CnMD5有BUG

CnMD5中计算大文件(我测试的是2G的)MD5的代码有BUG,运行代码至
------------------------------------------------------------------------------------------------------------------------
  MD5Init(Context);
  FileHandle := CreateFile(pChar(FileName), GENERIC_READ, FILE_SHARE_READ or
                FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or
                FILE_FLAG_SEQUENTIAL_SCAN, 0);
  if FileHandle <> INVALID_HANDLE_VALUE then
    try
      MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil);
      if MapHandle <> 0 then
        try
          ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0);
--------------------------------------------------------------------------------------------------------------------------
此处MapViewOfFile失败,返回为Nil.
我用的是最新版的,小文件测没有问题,请版主检查.

2007-8-24 11:39 mestars
我也发现,校验一个700M的文件会很慢,而且内存占用达到380多M.

2007-12-13 15:03 croslq
MapViewOfFile 对于内存小的,不能一次性映射,多分多次映射
如一次性映射64M
多映射几次,不然内存小的,肯定都会出问题

2007-12-13 15:04 croslq
可以参考我的贴子(前面是转贴,后面是我改写的delphi代码)
[u][color=#154ba0][url=http://www.delphibbs.com/keylife/iblog_show.asp?xid=23544]http://www.delphibbs.com/keylife/iblog_show.asp?xid=23544[/url][/color][/u]
Tony 用Windows的文件映射机制, 实现大批量数据的快速存储(转载) (后面附有我改写的delphi版)

页: [1]
查看完整版本: [BUG报告]CnMD5有BUG


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.