|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.