ocx 中使用 richedit 打开大文件,报“内存不足,无法完成此操作”

zacc 2012-07-07 02:00:20
如题,我在ocx中封装了richedit 控件,当打开一个20M大小的rtf文件时,出现上述情况。很是疑惑,求解答。谢谢

打开文件的代码:

ReadFromFile( LPCTSTR lpszFilePath )
{

CLog::LogPrintfDetailEx("CNetRichEditCtrl::ReadFromFile %s",lpszFilePath);


CFile crtfFile;
if(crtfFile.Open(lpszFilePath,CFile::modeRead|CFile::shareDenyNone|CFile::typeBinary,NULL))
{
CLog::LogPrintfDetailEx("打开文件成功");
EDITSTREAM edtStream;
ZeroMemory(&edtStream,sizeof(EDITSTREAM));
edtStream.dwCookie =(DWORD) &crtfFile;
edtStream.pfnCallback = CNetRichEditCtrl::CBEditStreamIn;
SendMessage(EM_STREAMIN,SF_RTF,(LPARAM)&edtStream);

crtfFile.Close();
CLog::LogPrintfDetailEx("streamin file ret :%u",edtStream.dwError);
return edtStream.dwError;
}
CLog::LogPrintfDetailEx("打开文件失败");
return -1;
}
CBEditStreamIn( DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb )
{
CLog::LogPrintfDetailEx("EditStreamCallback dwcookie:%u\n",dwCookie);
CFile* pFile = (CFile*)dwCookie;
*pcb = pFile->Read(pbBuff,cb);
return 0;
}
...全文
148 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zacc 2012-07-13
  • 打赏
  • 举报
回复
谢谢 tubo_true 问题已解决。

问题描述在我的blog中,方便后来人
http://www.cppblog.com/zaccheo/archive/2012/07/13/183122.html
tubo_true 2012-07-09
  • 打赏
  • 举报
回复
richedit 控件,直接打开一个20M的
是否报错?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧