All pastes #2075059 Raw Edit

Stuff

public cpp v1 · immutable
#2075059 ·published 2011-06-05 13:18 UTC
rendered paste body
.h#include <windows.h>#include <stdio.h>#include <string.h>#define MY_APP_ERROR_HDR ("Found a Error!")#define NEED_IGNORE (1)#define NEED_DEBUG  (2)char __stdcall _FASSERT(void* expr, void *filename, unsigned int linenum,const char* FunctionName);//#define FASSERT(expression) _FASSERT((void*)(expression),__FILE__,__LINE__)//#pragma warning(disable:4312)#define FASSERT(expr) {if (NEED_DEBUG==_FASSERT(reinterpret_cast<void*>(expr || expr),__FILE__,__LINE__,TEXT( #expr))){__asm INT 3};};//#pragma warning(default:4312).cpp#pragma warning(disable:4996)char  __stdcall _FASSERT(void* expr, void *filename, unsigned int linenum,const char* FunctionName){	if (!expr)	{		ShowCursor(true);        char buf[400] = "";		sprintf(buf,"Не выполняется утверждение в программе!\nУтверждение:%s\nФайл:\"%s\"\nСтрока №%u\n\tПрервать - выход\n\tПовторить - перейти в Debug\n\tОтменить - игнорировать",FunctionName,filename,linenum);		int ret = MessageBox(0,buf,MY_APP_ERROR_HDR,MB_ABORTRETRYIGNORE | MB_ICONWARNING | MB_DEFBUTTON2);		switch(ret)		{		case IDABORT	:ExitProcess(0)		;break;		case IDRETRY	:return NEED_DEBUG	;break;									// DEBUG останов		case IDIGNORE	:ShowCursor(false); return NEED_IGNORE	; break;	// Игнор		}	}	return 0;}