D:/Zythum/DinoKod/Common/Assert.cpp

00001 //---------------------------------------------------------------------------------------------
00002 //      This file is a part of "DinoKod".
00003 //      Copyright © 2003 Dino Productions. All Rights Reserved.
00004 //      
00005 //      File                    : Assert.cpp
00006 //      Author                  : Sebastien LEIX        sebastien.leix@wanadoo.fr
00007 //      Date                    : 07/09/2002
00008 //      Modification    :
00009 //
00010 //---------------------------------------------------------------------------------------------
00011 #ifdef _WIN32
00012 
00013 #include <windows.h>
00014 #include <signal.h>
00015 
00016 #include "Common/Assert.h"
00017 
00018 #define ASSERT_MAX_TEXT 1024
00019 #define ASSERT_MAX_PATH 1024
00020 
00021 //---------------------------------------------------------------------------------------------------------------------
00022 void KAssert::Assert( char* pExpression, char* pFileName, unsigned long LineNumber )
00023 {
00024         char    pText[ASSERT_MAX_TEXT];
00025         char    pProgram[ASSERT_MAX_PATH];
00026         char    pLine[32];
00027 
00028         strcpy( pText, "Assertion Failed !\n\n" );
00029         strcat( pText, "Program: " );
00030         
00031         GetModuleFileName( NULL, pProgram, ASSERT_MAX_PATH );
00032         strcat( pText, pProgram );
00033         strcat( pText, "\n" );
00034 
00035         strcat( pText, "FileName: ");
00036         strcat( pText, pFileName );
00037         strcat( pText, "\n" );
00038 
00039         wsprintf( pLine, "Line: %i", LineNumber );
00040         strcat( pText, pLine );
00041         strcat( pText, "\n\n" );
00042 
00043         strcat( pText, "Expression: " );
00044         strcat( pText, pExpression );
00045         
00046         int Code = MessageBox( NULL, pText, "Assertion Failed !!!", MB_TASKMODAL|MB_ICONHAND|MB_ABORTRETRYIGNORE|MB_SETFOREGROUND );
00047 
00048         switch( Code )
00049         {
00050         case IDABORT:
00051                 raise(SIGABRT);
00052                 exit(3);
00053 
00054         case IDRETRY:
00055                 DebugBreak();
00056                 return;
00057 
00058         case IDIGNORE:
00059                 return;
00060         }
00061 }
00062 
00063 #endif // _WIN32

Generated on Sun Mar 25 20:02:10 2007 for Zythum Project by  doxygen 1.5.1-p1