Annotation of mstools/mfc/src/assert.cpp, revision 1.1

1.1     ! root        1: // This is a part of the Microsoft Foundation Classes C++ library. 
        !             2: // Copyright (C) 1992 Microsoft Corporation 
        !             3: // All rights reserved. 
        !             4: //  
        !             5: // This source code is only intended as a supplement to the 
        !             6: // Microsoft Foundation Classes Reference and Microsoft 
        !             7: // QuickHelp documentation provided with the library. 
        !             8: // See these sources for detailed information regarding the 
        !             9: // Microsoft Foundation Classes product. 
        !            10: 
        !            11: #ifdef _WINDOWS
        !            12: #include "afxwin.h"
        !            13: #else
        !            14: #include "afx.h"
        !            15: #endif
        !            16: #pragma hdrstop
        !            17: 
        !            18: #ifdef AFX_CORE_SEG
        !            19: #pragma code_seg(AFX_CORE_SEG)
        !            20: #endif
        !            21: 
        !            22: 
        !            23: /*
        !            24:  *  NOTE: in separate module so it can replaced if needed
        !            25:  */
        !            26: 
        !            27: #ifdef _DEBUG
        !            28: #undef THIS_FILE
        !            29: static char BASED_CODE THIS_FILE[] = __FILE__;
        !            30: #endif
        !            31: 
        !            32: #ifdef _DEBUG
        !            33: int afxIgnoreAssertCount = 0;               // for testing diagnostics
        !            34: #endif
        !            35: 
        !            36: #pragma optimize("q", off)
        !            37: 
        !            38: extern "C"
        !            39: void PASCAL AfxAssertFailedLine(const char FAR* lpszFileName, int nLine)
        !            40: {
        !            41: #ifdef _DEBUG
        !            42:        if (afxIgnoreAssertCount > 0)
        !            43:        {
        !            44:                afxIgnoreAssertCount--;
        !            45:                return;
        !            46:        }
        !            47: 
        !            48: #ifdef _WINDOWS
        !            49:        char sz[255];
        !            50:        static char BASED_CODE szTitle[] = "Assertion Failed!";
        !            51:        static char BASED_CODE szMessage[] = "%s: File %s, Line %d";
        !            52:        static char BASED_CODE szUnknown[] = "<unknown application>";
        !            53: 
        !            54:        wsprintf(sz, (LPCSTR)szMessage, 
        !            55:                AfxGetApp() == NULL ? (LPCSTR)szUnknown : (LPCSTR)AfxGetAppName(), 
        !            56:                lpszFileName, 
        !            57:                nLine);
        !            58: 
        !            59:        if (afxTraceEnabled)
        !            60:        {
        !            61:                // assume the debugger or auxiliary port
        !            62:                ::OutputDebugString(szTitle);
        !            63:                ::OutputDebugString("\n\r");
        !            64:                ::OutputDebugString(sz);
        !            65:                ::OutputDebugString("\n\r");
        !            66:                _asm { int 3 };
        !            67:        }
        !            68: 
        !            69:        ::MessageBox(NULL, sz, szTitle, MB_SYSTEMMODAL | MB_ICONHAND | MB_OK);
        !            70: #else
        !            71:        static char szMessage[] = "Assertion Failed: file %Fs, line %d\r\n";
        !            72:        fprintf(stderr, szMessage, lpszFileName, nLine);
        !            73: #endif // _WINDOWS
        !            74: 
        !            75: #else
        !            76:        // parameters not used if non-debug
        !            77:        (void)lpszFileName;
        !            78:        (void)nLine;
        !            79: #endif // _DEBUG
        !            80: 
        !            81:        AfxAbort();
        !            82: }
        !            83: 
        !            84: #pragma optimize("", on)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.