CStdioFile emlfile;
emlfile.Open( "1212.eml",CFile::modeReadWrite|CFile::modeCreate);
emlfile.Write(smsg,smsg.GetLength());
emlfile.Close();
结果1212.eml文件用ultraedit打开的时候提示是否要转为dos格式,而且,所有的邮件浏览器都不能正常现实。后来把代码中的CFile就一切正常了,看来虽然CStdioFile是从CFile继承来的,但是Write()的调用方式也是重载过了的。
这一点从mfc源代码里面得到了证实, CStdioFile中的Open()调用的_fdopen(),而CFile的Open()调用的是::CreateFile,同样的,在Write中分别用的fwrite()和::WriteFile();
暂时就不追踪下去了,完成毕业设计要紧,等设计完了再看看底层代码吧!
Tags: 编程 IT技术 blog

文章 (RSS)