CDumpContext не имеет класса родителя. Он предназначен для вывода диагностической информации при отладке программы. Объект этого класса глобального уровня объвлен в MFC и имеет имя afxDump. Вообще отладочный контекст концептульно похож на поток ceer, а так же на обычный поток, так как можно использовать операции <<. Этот перегруженный оператор умеет выводить переменные в поток вывода отладчика.
void main() { CDumpContext cd; cd << "Out debug contectst "; }
Данный контекст обычно используют для передачи в функции CObject::Dump вывода информации о объекте. CDumpContext умеет выводить информацию о содержании многих классов MFC, например, CString, CTime и часть структур типа CPoint. Давайте посмотрим.
CString s("Hello "); CPoint cp(23,23); CDumpContext cd; cd << s; cd << cp; ------------- Hello (23, 23)The thread 0xFFFC0769 has exited with code -2124201428 (0x8163422C). The program 'E:\PROJECT\TestObject\Debug\TestObject.exe' has exited with code -2124201428 (0x8163422C).
Если Вы хотите использовать свой класс для вывода информации, то Вы должны породить его от CObject и перегрузить функцию Dump. Итак, выводить информацию в отладочный контекст можно двумя способами.
Отладочный контекст определен только в Debug версии, поэтому весь код связанный с контекстом необходимо отделять #ifdef _DEBUG .. #endif инструкциями. Вы можете определить свой отладочный контекст используя класс CFile. Давайте посмотрим ???
CFile dumpFile("discardme.txt",CFile::modeCreate | CFile::modeWrite); if( !dumpFile ) { afxDump << "File not create"; } else { CString s("Hello file Dump "); CDumpContext cd(&dumpFile); cd << s; }