Windows Programming/Microsoft Foundation Classes

来自Wikibooks
跳到导航 跳到搜索

微软基类库(MFC)是一套包装了Windows API的简洁的C++类库,用于Microsoft Visual Studio开发Windows应用程序。

如果没有下述需求,你可以考虑采取Win32 API SDK或其他包装库:

  1. 利用复杂的GUI,使用文档/视图架构或者复杂的控件。
  2. 使用依赖于MFC的其他库
  3. 你的应用程序使用复杂安装

读写文件[编辑]

流式文件是被缓冲的。

CFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,通过派生类支持文本文件和内存文件。

CStdioFile继承自CFile。CStdioFile不支持Duplicate,LockRange,和UnlockRange这几个CFile函数。如果在CStdioFile中调用了这几个函数,将会出现CNoSupported异常。CStdioFile定义了ReadString与WriteString两个成员函数,注意二者都做了\n与\r\n的自动转换。

  • CStdioFile::ReadString(LPTSTR lpsz, UINT nMax);读取一行文本到缓冲区,遇到“0x0D 0x0A”时停止读取,并且去掉硬回车“0x0D”,保留换行符“0x0A”,在字符串末尾添加“\0”(0x00)。nMax个字符里包含0x00这个字符。如果缓冲区容量不够,则没有换行符“0x0A”。如果文件未读完返回true,否则返回false。
  • CStdioFile::ReadString(CString &rString); 重载版本。读取一行文本到rString,遇到回车换行符停止读取。回车和换行符不读到rString。
  • CStdioFile::WriteString( LPCTSTR lpsz );(不支持CString直接写入)结束的空字符(“\0”)不被写入该文件。lpsz中的所有换行符都被以一个硬回车换行符对写入该文件,即“\n”被转化成“\r\n”写入到文件里。