我需要读取一个非文本类型的二进制文件 
代码:
    CFile File;
    File.Open(szPath,CFile::typeBinary|CFile::modeRead );//打开文件
    int Len = File.GetLength();
    BYTE* pData = new BYTE[Len+1];
    File.Read(pData,Len);//读文件    然后pData所指向的内存区域是否为储存所读入文件的内存区域
    如果是 如何取出该文件数据来MD5加密呢 求高手解答
    MD5加密函数形式如下    MD5(CString str); //str为需要加密的字符串

解决方案 »

  1.   

    CString str(pData,Len);
    MD5(str);
      

  2.   

    CString str(pData,Len);
    MD5(str);报错  不能将参数 1 从“BYTE *”转换为“const VARIANT &”
    改为CString str((char*)pData,Len);后成功编译 但是GetLength后取出的字符串长度只有四个字节
      

  3.   

    可以将BYTE[]转成CString类型
    CString::AppendFormat(_T("%x"), buff[XXX]);
      

  4.   

    那是你的MD5里面不支持CString有\0那就没办法了  即要以CString做参数 又不支持里面的\0  那就只能保证你的二进制数据没有0了