Error Handling

Nu even niet ingewikkeld doen met ingewikkelde API's. Nee nu gaan we het even hebben over error afhandeling. In mijn vorige tutorial gebruikte ik de macro FAILED(). Als het inderdaad mislukte dan deed de functie return 0; en je wist nog niet wat de fout is. Daar wou ik graag verandering in zien. Dus ik ben er eens voor gaan zitten en kwam er achter dat het eigenlijk heel simpel was om je eigen functie te schrijven die een fout bericht zou weergeven.

Allereerst declareren we een char variabele die 30 tekens kan bevatten. Dat doen we bij de defines, dus helemaal bovenaan in de source.

char ErrStr[30]; // Error string kan 30 tekens bevatten

Dan gaan we de functie schrijven die de error message weergeeft. Zo heb ik het gedaan.

void ErrBox( char ErrStr[30] )
{
	MessageBox(main_window_handle,ErrStr,"Error", MB_OK);
}

main_window_handle is bij mij een global die de windoe handle bevat. ErrStr is de error message. Error is de titel die de messagebox straks bevat. MB_OK betekent dat er een ok knop word weerggeven.

Nu kun je gebruik maken van de ErrBox functie. Dat doe je op deze manier.

if (FAILED(DirectDrawCreateEx(NULL,(LPVOID*)&lpdd, IID_IDirectDraw7, NULL)))
	{
		ErrBox("DirectDrawCreateEx Failed");
		return;
	}

Als het mislukt krijg je dit te zien. Weergave van de messagebox

Er zijn hier nog veel variaties op te vinden. Maar dat laat ik aan jou over.

Groetjes, InSiEj