标题:vs2010mfc 文件操作
只看楼主
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
结帖率:54.55%
已结贴  问题点数:20 回复次数:10 
vs2010mfc 文件操作
void CfileView::OnFileWrite()
{
    // TODO: 在此添加命令处理程序代码
    CFile file(LPCTSTR("test.txt"),CFile::modeCreate|CFile::modeWrite);
    file.Write("hello",strlen("hello"));
    file.Close();

}

写了一个打开文件的函数,,,但程序运行后没有该文件,,,不知道为什么
搜索更多相关主题的帖子: hello file 
2015-03-11 10:55
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
CFile file(L"test.txt",CFile::modeCreate|CFile::modeWrite);
2015-03-11 11:28
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
得分:0 
不行呀,,,

低调的卓越.........
2015-03-11 12:11
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
得分:0 
ok了  请问这是为什么

低调的卓越.........
2015-03-11 12:13
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
LPCTSTR 不是必须的,vs08版本以上默认是宽字符。
加L宏仅仅是为了把cpp文本转换给核心编译器

也可以这样
CFile file(LPCTSTR(L"test.txt"),CFile::modeCreate|CFile::modeWrite);
2015-03-11 13:41
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
得分:0 
不加LPCTSTR编译器报错的

低调的卓越.........
2015-03-11 15:36
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
得分:0 
void Cfile2View::On32772()//read file
{
    // TODO: 在此添加命令处理程序代码
    CFile file(L"test.txt",CFile::modeRead);
    char*pBuf;
    DWORD length=file.GetLength();
    pBuf=new char[length+1];
    pBuf[length]=0;
    file.Read(pBuf,length);
    file.Close();
    MessageBox(LPCTSTR(pBuf));
}
这个文件读取上次写入的文字 ,,,消息框显示的是一堆乱码  ,, 怎么回事呀? 大神

低调的卓越.........
2015-03-11 15:54
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
说了字符集问题啊,你要不是改下vs设置吧,可以改成acsii的


void Cfile2View::On32772()//read file
     {
     // TODO: 在此添加命令处理程序代码
    CFile file(L"test.txt",CFile::modeRead);
     char*pBuf;
     DWORD length=file.GetLength();
     pBuf=new char[length+1];
     pBuf[length]=0;
     file.Read(pBuf,length);
     file.Close();
     int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, pBuf, -1, NULL, 0 );
     wchar_t* pResult = new wchar_t[nLen];
     MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, pBuf, -1, pResult, nLen );  

     MessageBox(pResult);
     }
2015-03-11 17:55
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
得分:0 
ok  多谢大神 ,,大神能不能给点学习MFC的方法与经验???万分感谢

低调的卓越.........
2015-03-11 21:53
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
这个问题和mfc没关系啊,mfc只是一个库,不要苛求追逐mfc了。
不过用一个库来入门到是不错,以前记得有vc知识库,现在不知道有没有了,那里很多代码技巧。
不过我是没看过,听口碑不错
2015-03-11 22:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442523-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016718 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved