Метод C++ отлично работает в простом проекте C++, но не в проекте Smart Device
У меня есть простая функция, которая пишет в файл.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 ответ
Пожалуйста, проверьте правильность строкового файла fstream ("D:\k.txt", ios::app); означает "Может быть, d:\ не существует в смартфоне".
Ниже приведены подробности создания объекта fstream.
http://www.cplusplus.com/reference/iostream/fstream/fstream/
"fstream (); явный fstream (const char * filename, ios_base
: openmode mode = ios_base:: in | ios_base:: out);
Создайте объект и, при необходимости, откройте файл. Создает объект класса fstream. Это подразумевает инициализацию связанного объекта filebuf и вызов конструктора его базового класса с объектом filebuf в качестве параметра.
Кроме того, когда используется вторая версия конструктора, поток связывается с физическим файлом, как если бы был выполнен вызов функции-члена, открытой с теми же параметрами.
Если конструктор не успешно открыл файл, объект все еще создается, хотя файл не связан с буфером потока, и бит сбоя потока установлен (что может быть проверено с ошибкой унаследованного члена). "