C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 229 - CDumpContext / MFC шаг за шагом / Visual C++

Шаг 229 - CDumpContext

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. Итак, выводить информацию в отладочный контекст можно двумя способами.

  1. Используя Dump функцию для классов порожденных от CObject
  2. Используя перегруженный оператор << для MFC классов не порождленных от CObject.

Отладочный контекст определен только в 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;
}

| |
Автор Каев Артем.
[AD]