关于CFile读写的问题(急急急急!!!)

mickeyhao85 2009-01-02 12:39:18
关于CFile的读写我有点疑惑

CFile file;
file.open(path,CFile::modeWrite)
往文本中写的时候一定要文本存在吧,如果文本不存在是创建的,得加上CFile::modeCreate是吧?

不太明白有时为什么要用CreateFile

HANDLE hFile=CreateFile( Filename,GENERIC_WRITE,FILE_SHARE_READ,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);

CFile file((int)hFile);

不是直接用CFile::modeCreate 就可以创建吗?有什么区别这两个...望详解...

问题2:
文本不存在我直接往里面写了(只用了modeWrite如下),在模拟器里面好像文本也创建了一切正常,也没报错...
CFile file;
file.open(path,CFile::modeWrite)
但我在正式平台上运行程序的时候
程序在file.close这句就自动退出了,也没报错,很奇怪...我现在分析可能是文件没创建的原因...
希望高手帮我分析下

望高手详细回答上面两个问题,最好帮我详细介绍下CFile类
THX!
...全文
275 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickeyhao85 2009-01-06
  • 打赏
  • 举报
回复
THX各位了
莫名其妙的自己又好了
weidong0210 2009-01-04
  • 打赏
  • 举报
回复
学习
noenoughmemory 2009-01-03
  • 打赏
  • 举报
回复
不懂,up
naxiahucao 2009-01-03
  • 打赏
  • 举报
回复
MFC
qzf368 2009-01-03
  • 打赏
  • 举报
回复
学习了
Cpp权哥 2009-01-03
  • 打赏
  • 举报
回复
你可以检查open函数的返回值,如果为真表示打开成功,为假表示失败。
ccpaishi 2009-01-03
  • 打赏
  • 举报
回复
createfile是win的sdk,任何windows上的文件函数,最终都是调用这个函数来实现的
一名程序员 2009-01-03
  • 打赏
  • 举报
回复
void CFile::Close()
{
ASSERT_VALID(this);
ASSERT(m_hFile != (UINT)hFileNull);

BOOL bError = FALSE;
if (m_hFile != (UINT)hFileNull)
bError = !::CloseHandle((HANDLE)m_hFile);

m_hFile = (UINT) hFileNull;
m_bCloseOnDelete = FALSE;
m_strFileName.Empty();

if (bError)
CFileException::ThrowOsError((LONG)::GetLastError());
}

以上是CFile::Close()的源代码。其中楼主的程序估计是在最后一行抛出了异常。
也就是说bError = !::CloseHandle((HANDLE)m_hFile);一句可能有问题。
但具体的问题,可能与楼主Open的时候设置的参数不当有关系。
Show_Mike 2009-01-03
  • 打赏
  • 举报
回复
注意这点区别:
1.如果文件不存在,而你是moderead,那么就会出错;
2.如果文件不存在,而采用modewrite,那么系统自动创建一个长度为0的文件,可以往里面写.
不妨根据这个思路运行一下你的程序,检查一下生成的文件,看看里面内容是否你写入的.
mickeyhao85 2009-01-02
  • 打赏
  • 举报
回复
第二个问题高手们发表点意见啊...
bluesky395 2009-01-02
  • 打赏
  • 举报
回复
学习
蒋晟 2009-01-02
  • 打赏
  • 举报
回复
CreateFile是面向过程的,支持各种语言
CFile是面向对象的,只能在MFC程度里面用
schlafenhamster 2009-01-02
  • 打赏
  • 举报
回复
file.open(path,CFile::modeWrite) 文件不存在时会Create一个0长度的文件.
文件存在时把文件文件长度截为0.
wocow3 2009-01-02
  • 打赏
  • 举报
回复
CreateFile 是SDK API,是底层
CFile是MFC类,是基于SDK API的
标题SpringBoot中小学教育辅导系统设计与实现AI更换标题第1章引言介绍中小学教育辅导系统的研究背景、意义、现状以及论文的方法和创新点。1.1研究背景与意义分析当前中小学教育辅导的现状及系统开发的重要性。1.2国内外研究现状探讨国内外中小学教育辅导系统的发展现状与趋势。1.3研究方法以及创新点概述本文的研究方法,阐述系统的创新点。第2章相关理论介绍SpringBoot框架及教育辅导系统相关理论。2.1SpringBoot框架概述介绍SpringBoot框架的特点、优势及在系统开发中的应用。2.2教育辅导系统理论基础阐述教育辅导系统的基本理论,包括学习理论、教学理论等。2.3系统开发相关技术概述系统开发过程中涉及的其他关键技术,如数据库技术、前端技术等。第3章系统需求分析与设计对中小学教育辅导系统进行详细的需求分析与设计。3.1需求分析分析系统的功能需求、性能需求及用户需求。3.2系统架构设计设计系统的整体架构,包括前后端分离架构、模块划分等。3.3数据库设计设计系统的数据库结构,包括表结构、关系等。第4章系统实现详细介绍中小学教育辅导系统的实现过程。4.1开发环境搭建介绍系统开发所需的环境配置及工具选择。4.2功能模块实现阐述各个功能模块的实现过程,包括用户管理、课程管理、学习资源管理等。4.3系统测试与优化对系统进行测试,包括单元测试、集成测试等,并对系统进行优化。第5章系统应用与效果分析对中小学教育辅导系统的应用效果进行分析。5.1系统应用情况介绍系统在实际应用中的情况,包括用户反馈、使用数据等。5.2效果评估与分析从教学效果、用户体验等方面对系统进行评估与分析。5.3对比方法分析通过与传统教育辅导方式对比,凸显系统优势。第6章结论与展望总结中小学教育辅导系统的设计与实现成果,并展望未来的研究方向。6.1研究结论概括系统的主要功能、特点及创新点。6.2展望指出系统

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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