1

使用 CStdioFile 类型时,我无法编译我的代码。我已包含 afx.h 头文件,但仍然收到错误消息。我要做的是编写一个包含整个 xml 文档的 cstring 文件。此 cstring 包含其中的注释,但是当我使用其他对象(例如 wofstream)将其写入文件时,这些注释由于某种原因被删除。这就是为什么我现在尝试使用 CStdioFile 将其写入文件的原因。如果有人可以帮助我解释为什么我不能使用 CStdioFile 编译我的代码,或者任何其他方式来编写包含 xml 注释的 cstring 到文件,请告诉我!下面是我使用 CStdioFile 的代码:

CStdioFile xmlFile;
xmlFile.Open( "c:\\test.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText );
xmlFile.WriteString( m_sData );
xmlFile.Close();

还有我的错误:错误 C2065:'CStdioFile':未声明的标识符错误 C2065:'modeCreate':未声明的标识符错误 C2065:'modeWrite':未声明的标识符错误 C2065:'typeText':未声明的标识符错误 C2065:'xmlFile':未声明的标识符错误C2146:语法错误:缺少“;” 在标识符“xmlFile”之前错误 C2228:“.Close”左侧必须具有类/结构/联合类型类型为“未知类型”错误 C2228:“.Open”左侧必须具有类/结构/联合类型类型为“未知类型”错误 C2228:“.WriteString”左侧必须有类/结构/联合类型类型为“未知类型”错误 C2653:“CFile”:不是类或命名空间名称错误 C2653: 'C文件':

4

1 回答 1

1

你真的包括<afx.h>吗?它是正确的axf.h吗(你必须在你的系统上发生一些非常奇怪的事情才能让它不是)?您使用的是什么编译器版本?

这个小程序在 VS2010 和 VS2008 下编译运行良好:

#include <afx.h>
#include <tchar.h>

int main()
{
    CStdioFile xmlFile;
    LPCTSTR m_sData = _T("Testing 123\n");

    xmlFile.Open( _T("c:\\temp\\test.txt"), CFile::modeCreate | CFile::modeWrite | CFile::typeText );
    xmlFile.WriteString( m_sData );
    xmlFile.Close();
}

它在您的系统上会发生什么?

于 2011-03-02T00:00:22.147 回答