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 руб./мес


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




 224 - Dump / MFC шаг за шагом / Visual C++

Шаг 224 - Dump

Выводим пользовательские классы в отладочный контекст CDumpContext:

virtual void Dump( CDumpContext& dc ) const

Создавая свой класс-потомок от CObject Вы должны перегрузить функцию Dump для вывода Ваших данных описанных в классе. В ходе вывода в отладочный поток выводится и имя класса при условии, что к классу добавлена информация о нем с помощью

IMPLEMENT_DYNAMIC
IMPLEMENT_SERIAL 

Это отладочная функция и использоваться она должна только в версии Debug следите за этим с помощью #ifdef _DEBUG #endif директивами компиляции. Кроме того эта функция const, поэтому данные менять нельзя. Кроме того вы должны использовать F5 для запуска в режиме отладки. Давайте посмотрим пример:

#include "stdafx.h"
#include "afxwin.h"
#include "iostream.h"

class CMyObject : public CObject
{
public:
	#ifdef _DEBUG
		void AssertValid() const;
		void Dump(CDumpContext& dc) const;
	#endif
 
protected:
    DECLARE_DYNCREATE(CMyObject)
private:
	int x;
	int y;
};

IMPLEMENT_DYNCREATE(CMyObject,CObject);

#ifdef _DEBUG

void CMyObject::AssertValid() const
{
	CObject::AssertValid();
	ASSERT(y==100);
}


void CMyObject::Dump( CDumpContext& dc ) const
{
	CObject::Dump(dc);
	dc << "Hello Dump ";
}

#endif

class CAlternativeObject : public CObject
{
protected:
 DECLARE_SERIAL(CAlternativeObject);	
};

IMPLEMENT_SERIAL(CAlternativeObject,CObject,1);


void main()
{
	CMyObject cm;
#ifdef _DEBUG
	cm.Dump(afxDump) ;
#endif
}

Я использовал стандартный контекст afxDump, поэтому весь вывод пойдет в окно отладки. Вот так:

224.gif (8255 b)


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