Шаг 10 - Добавляем деструктор к классу CMainWnd

Немного подправим предыдущий "Шаг 9 - Создаем Direct3D при помощи MFC".

После всех #include поставим:

#define _RELEASE_(p) { if(p) { (p)->Release(); (p)=NULL; };};
#define _DELETE_(p) { if(p) { delete (p); (p)=NULL; };};

Для более подробной информации смотрите "Шаг 1 - Инициализация оконного приложения". Перенесите инициализацию устройств Direct3D в наш класс:

class CMainWnd : public CFrameWnd
{
public: 
	CMainWnd();			// Конструктор по умолчанию
private:
	LPDIRECT3D8 p_d3d;			// наш главный интерфейс 
	LPDIRECT3DDEVICE8 p_d3d_Device;	// наше устройство d3d8
};

И напишем деструктор. Для этого щелкнем правой кнопкой мышки на класс CMainWnd отображаемый в окне Class View:

10_1.gif (3957 b)

Далее выберем Add -> Add Function (Добавить->Добавить Функцию), в появившемся окне выбираем из выпадающего списка void и пишем название деструктора:

10_2.gif (5487 b)

Переходим в него и добавляем код:

CMainWnd::~CMainWnd(void)
{
	_RELEASE_(p_d3d_Device);
	_DELETE_(p_d3d_Device);
	_RELEASE_(p_d3d);
	_DELETE_(p_d3d);
}

Вначале удаляется устройство, а затем только сам Direct3D и ни в коем случае не наоборот.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Хавов Евгений Валерьевич - 10.08.2002