2011-03-01 152 views
1

使用CStdioFile类型时,我无法编译我的代码。我已经包含afx.h头文件,但我仍然收到错误。我想要做的是写一个包含整个xml文档的cstring文件。这个cstring在其中包含注释,但是当我使用其他对象(如wofstream)将其写入文件时,由于某些原因,这些注释会被删除。所以这就是为什么我现在试图使用CStdioFile将其写入文件的原因。如果任何人都可以帮我解释为什么我不能使用CStdioFile编译我的代码,或者使用其他方式编写包含xml注释的cstring,请告诉我!下面是一个使用CStdioFile我的代码:我的错误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:'CFile':不是类或名称空间名称 错误C2653:'CFile':不是类或名称空间名称 错误C3861:'xmlFile':标识符未找到,即使使用参数依赖查找 错误C3861:'xmlFile':标识符未找到,即使使用参数相关查找 错误C3861:'xmlFile':标识符未找到,即使使用参数依赖性looku p

回答

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(); 
} 

您的系统上会发生什么?