fplength = readfile(&fpBuff, fplength); int CMFCcomtooltryDlg::readfile(unsigned char** fpBuff, unsigned long fplength) { CFile fp; //打开文件 unsigned long m_nFileLength; m_eFilePath.GetWindowTextW(m_strSendFilePathName); if (!(fp.Open((LPCTSTR)m_strSendFilePathName, CFile::modeRead))) { MessageBox(_T("Open file failed!")); return 1; } //定位文件指针至文件尾 fp.SeekToEnd(); //获取长度,分配大小 fplength = fp.GetLength(); m_nFileLength = fplength; *fpBuff = new unsigned char[fplength]; //定位文件指针至文件头 fp.SeekToBegin(); if (fp.Read(*fpBuff, fplength) < 1) { fp.Close(); return 2; } else { fp.Close(); return fplength; } }
时间: 2024-04-18 15:32:13 浏览: 112
php使用 readfile() 函数设置文件大小大小的方法
根据提供的代码,`readfile` 函数打开并读取文件的内容,并将其存储在 `Buff` 指向的内存中。函数返回文件的长度,或者在发生错误时返回相应的错误代码。
首先,函数从界面上获取文件路径,并尝试以只读方式打开文件。如果打开失败,会弹出一个消息框提示打开文件失败,并返回值 1。
然后,函数将文件指针定位到文件末尾,并获取文件的长度。接下来,根据文件长度动态分配了一个大小为 `fplength` 的无符号字符数组,并将其赋值给 `*fpBuff`。
接着,函数将文件指针定位到文件开头,并使用 `fp.Read` 函数从文件中读取数据到 `*fpBuff` 中。如果读取失败,会关闭文件并返回值 2。
最后,如果读取成功,函数关闭文件并返回文件的长度 `fplength`。
需要注意的是,在调用 `readfile` 函数之前,确保 `fpBuff` 和 `fplength` 的初始值是正确的,并且已经包含了正确的文件路径。
如果你在执行代码时遇到了问题,请提供更多的错误信息或者问题描述,以便我们能够更好地帮助你解决问题。
阅读全文