Шаг 18 - Реализуем правильный выход

Итак, я говорил, что самое место для проведения обратных мероприятий это деструктор класса, а так же что нужно вызвать.

RestoreDisplayMode
SetCooperativeLevel 

И освободить объекты. Ниже приведенный код можно посмотреть в проекте 16 шага.

Visual Basic
Visual C++

Visual Basic

В деструкторе класса.

Private Sub Class_Terminate()
	objDirectDraw.RestoreDisplayMode
	objDirectDraw.SetCooperativeLevel 0, DDSCL_NORMAL
	Set SecondarySurf = Nothing
	Set PrimarySurf = Nothing
	Set objDirectDraw = Nothing
	Set objDirectX = Nothing
End Sub

Visual C++

В деструкторе класса.

CDirectDraw::~CDirectDraw()
{
	lpDD->RestoreDisplayMode();
	lpDD->SetCooperativeLevel(0,DDSCL_NORMAL );  
	if (SecondarySurf!=NULL) SecondarySurf->Release(); 
	if (PrimarySurf!=NULL) PrimarySurf->Release();	
	if (lpDD!=NULL) lpDD->Release();
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.04.2002