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


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




 230 - Функции GetDepth и SetDepth класса CDumpContext / MFC шаг за шагом / Visual C++

Шаг 230 - Функции GetDepth и SetDepth класса CDumpContext

Эти две функции получают и устанавливают число, которое характеризует глубину дампа.

int GetDepth( ) const;
void SetDepth( int nNewDepth );
// nNewDepth новая глубина дампа

Я немного отвлекусь и скажу, что операции << работают только при динамической компоновке приложения MFC. Вы должны выбрать USE MFC as shared DLL.

Обычно данные функции применяют для массивов объектов, чтобы в процессе отладки можно было просмотреть содержание всех переменных. Вот так-то можно сделать.

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

class CAge : public CObject
{
public:
	CAge(int x);
	CAge();
	#ifdef _DEBUG
		void Dump(CDumpContext& dc) const;
	#endif
protected:
    DECLARE_DUCREATE(CAge);
private:
	int xx;
};

CAge::CAge(int x)
{xx=x;}

CAge::CAge()
{ xx=0; }

IMPLEMENT_DUNCREATE(CAge,CObject);

#ifdef _DEBUG
	void CAge::Dump( CDumpContext& dc ) const
	{
		CObject::Dump(dc);
		dc << xx;
	}
#endif

void main()
{
   CObArray array;
   array.Add( new CAge( 21 ) ); 
   array.Add( new CAge( 40 ) ); 
   #ifdef _DEBUG
   	   afxDump.SetDepth(0); 
	   afxDump << array;
	   afxDump << "---------\n";
	   afxDump.SetDepth(1);
	   afxDump << array;
   #endif
   delete array.GetAt(0) ; 
   delete array.GetAt(1); 
}

Вот какие результаты в зависимости от установки SetDepth.

a CObArray at $64FDC8
with 2 elements
--------- // SetDepth(1) !!!!
a CObArray at $64FDC8
with 2 elements
 [0] = a CObject at $770D10
21
 [1] = a CObject at $7707A0
40

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