CStdioFile Необъявленный идентификатор - PullRequest
1 голос
/ 02 марта 2011

Я не могу скомпилировать свой код при использовании типа CStdioFile.Я включил заголовочный файл afx.h, но все еще получаю ошибки.То, что я пытаюсь сделать, это написать cstring, которая содержит весь XML-документ в файл.Эта строка содержит комментарии внутри нее, но когда я использую другие объекты, такие как wofstream, для записи в файл, эти комментарии по некоторым причинам удаляются.Вот почему я сейчас пытаюсь записать это в файл, используя CStdioFile.Если кто-то может мне помочь, почему я не могу скомпилировать свой код с помощью CStdioFile или каким-либо другим способом написать cstring, содержащую xml-комментарии к файлу, пожалуйста, дайте мне знать!Ниже приведен мой код с использованием 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': идентификатор не найден, даже с поиском, зависящей от аргумента

1 Ответ

1 голос
/ 02 марта 2011

Вы действительно включаете <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();
}

Что происходит с ней в вашей системе?

...