在ATL工程中如何从文本文件读取数据?

milee 2006-08-06 08:31:45
我使用ATL开发一个组件,没有使用MFC的支持,这个组件需要从文本文件里面读取数据,在C++中可以使用流类 ifstream,但是在ATL工程中间为什么不行啊?编译的时候会报错:
error C2872: 'ifstream' : ambiguous symbol
我已经把fstream.h, iostream.h都包括进去了,是不是在ATL中不能使用这个类,还有什么办法从文件中读取数据?我这个工程没有使用MFC支持啊,不会要我用C的文件处理吧?
各位大侠,帮忙看看
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
思危 2006-08-07
  • 打赏
  • 举报
回复
CAtlFile file;

char *buffer=new char[(DWORD)pFile->GetFileSize()+1];
HRESULT hr=file.Create(_T("C:\test.txt"),GENERIC_READ, FILE_SHARE_READ,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN );
if(FAILED(hr))
{
delete[] buffer;
return FALSE;
}

DWORD Bsize,old=(DWORD)pFile->GetFileSize();
hr=file.Read(buffer,old,Bsize);
if(FAILED(hr)){
delete[] buffer;
return FALSE
}

buffer[Bsize]=0;

// buffer 存储文件内容

delete[] buffer;
思危 2006-08-07
  • 打赏
  • 举报
回复
不用标准库,用了会增大组件的体积。ATL有内置的文件包装类,那用得着动用C的文件处理函数。
ldsjlzy 2006-08-07
  • 打赏
  • 举报
回复
即然用了com,就该用IPersistStreamInit,IStream
思危 2006-08-07
  • 打赏
  • 举报
回复
楼上仔细找找, 俺用了这么长时间,莫非我用的 ATL 是微软特别版?
sunmz_wjxy 2006-08-07
  • 打赏
  • 举报
回复
楼上,我怎么没发现在ATL里还有CAtlFile这个包装类?
好像ATL里没有这样一个类吧!!
我建议楼主自己用API封装一个.
firmbird 2006-08-06
  • 打赏
  • 举报
回复
注意名字空间的使用

3,245

社区成员

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

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