在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的文件处理吧?
各位大侠,帮忙看看
...全文
316 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
  • 打赏
  • 举报
回复
注意名字空间的使用
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

3,248

社区成员

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

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