Метод C ++ отлично работает в простом проекте C ++, но не в проекте Smart Device - PullRequest
1 голос
/ 05 марта 2012

У меня есть простая функция, которая пишет в файл .txt.Этот метод отлично работает в простом C ++ проекте.Но эта же функция при создании в C ++ SmartDeviceProject ничего не записывает в файл.

В чем проблема?

Пример кода приведен ниже.

STDMETHODIMP CHelloproxy::Hai(void)
{
    CTime t = CTime::GetCurrentTime();

    fstream file("D:\\k.txt", ios::app);

    file << t.GetHour() << ":" << t.GetMinute() << ":" << t.GetSecond() << "-"
         << "Add() operation started..." << endl;

    //file<<t.Format() << "-" << "Add() operation started..." << endl;

    HRESULT hr = proxy->Hai();

    file <<t.GetHour() << ":" << t.GetMinute() << ":" << t.GetSecond() 
         << "-" << "Add() operation finished..." << endl;

    file.close();

    return hr;
}

1 Ответ

2 голосов
/ 05 марта 2012

Пожалуйста, проверьте правильность линии файл fstream ("D: \ k.txt", ios :: app); означает «Может быть, d: \ не существует в смартфоне».

Ниже приведены подробности создания объекта fstream

http://www.cplusplus.com/reference/iostream/fstream/fstream/

» fstream (); явный поток (const char * filename, ios_base

: режим openmode = ios_base :: in | ios_base :: out);

Построить объект и при необходимости открыть файл Создает объект класса fstream. Это подразумевает инициализацию связанного объекта filebuf и вызов конструктора его базового класса с объектом filebuf в качестве параметра.

Кроме того, когда используется вторая версия конструктора, поток ассоциируется с физическим файлом, как если бы был выполнен вызов функции-члена, открытой с теми же параметрами.

Если конструктору не удалось открыть файл, объект все еще создается, хотя файл не связан с буфером потока, а бит потока потока установлен (что можно проверить при сбое наследуемого члена) , «

...