Шаг 19 - Точка прерывание в MFC AfxDebugBreak

В MFC есть своя точка прерывания AfxDebugBreak(). Для того, чтобы ей воспользоваться нужно как минимум подключить заголовочный файл afx.h. Вот полный пример:

#include "stdafx.h"
#include "afx.h"

void test();

struct strs
{
	int i;
	int j;
};

void main()
{
	int i=255;
	test();
	i=i+i;
}

void test()
{
	int y;
	y=234;
	for (int x=0;x<10000;x++)
	{
		strs ss;
		ss.i = 10;
		ss.j = 5;
		y=y+y;
		AfxDebugBreak();
	}
}

Так вот изучение этого макроса показало, что есть флаг не использовать CRT, тогда в зависимости от платформы разработки производится вызов прерывания или функции Win32API DebugBreak().

#ifdef _AFX_NO_DEBUG_CRT
	#if defined(_M_IX86) && !defined(_AFX_PORTABLE)
		#define AfxDebugBreak() _asm { int 3 }
	#else
		#define AfxDebugBreak() DebugBreak()
	#endif
#else
	#define AfxDebugBreak() _CrtDbgBreak()
#endif

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