Я запускаю точку останова в своем приложении в классе std::fstream
. Отладочный вывод не дает больше информации. Я не могу воспроизвести проблему, разделив класс на собственный проект, так как он отлично работает. Пожалуйста, не могли бы вы предложить, в чем проблема?контрольных точек запуска в конструкторе
Это место брейкпойнте:
Линия Я разбиваются о, на стеком вызовов является ::
DXTBApplication.exe!std::basic_ofstream >::basic_ofstream >() Line 930 C++
Это CallStack:
msvcr120d.dll!_malloc_dbg() Unknown
msvcp120d.dll!operator new(unsigned __int64,struct std::_DebugHeapTag_t const &,char *,int) Unknown
msvcp120d.dll!std::ios_base::_Init(void) Unknown
msvcp120d.dll!std::basic_ios<char,struct std::char_traits<char> >::init(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool) Unknown
msvcp120d.dll!std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)
DXTBApplication.exe!std::basic_ofstream<char,std::char_traits<char> >::basic_ofstream<char,std::char_traits<char> >() Line 930 C++
DXTBApplication.exe!CMyFile::CMyFile() Line 25 C++
DXTBApplication.exe!CFilenames::CFilenames() Line 22 C++
DXTBApplication.exe!CEngine::CEngine() Line 34 C++
DXTBApplication.exe!CApplication::CApplication(HINSTANCE__ * hInstance) Line 50 C++
DXTBApplication.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * prevInstance, char * cmdLine, int showCmd) Line 47 C++
[External Code]
Это мой фрагмент объявления переменной класса CMyFile:
private:
std::ofstream m_OFS;
std::ifstream m_IFS;
конкретизированных в классе CMyFile.h Как это:
std::shared_ptr<CMyFile> m_spMyFile; // in header
m_spMyFile.reset(new CMyFile()); // in implementation - constructor
Заранее спасибо за любую помощь.
EDIT Это, как я назначить fstream изнутри CMyFile::OpenOutput(const std::string& sFilename, unsigned int uiIOFlags)
m_OFS = std::ofstream(sFilename.c_str(), uiIOFlags); //std::ios_base::binary);
Потоки не могут быть скопированы или назначены. Если они являются членами вашего класса, и ваш класс будет скопирован, это не сработает. – NathanOliver
@NathanOliver, не назначен для копирования, но все еще назначен для переноса. – chris
Вы, вероятно, развратите кучу где-то еще, и это распределение - первое место, чтобы обнаружить это. Как выглядит полный конструктор для 'CMyFile'? –