Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
npassert.cpp
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 5k
Category:
Windows Kernel
Development Platform:
Visual C++
- /*****************************************************************/
- /** Microsoft Windows for Workgroups **/
- /** Copyright (C) Microsoft Corp., 1991-1992 **/
- /*****************************************************************/
- /*
- uiassert.c
- Environment specific stuff for the UIASSERT & REQUIRE macro
- This file contains the environment specific (windows vs. OS/2/DOS)
- features of the assert macro, specifically, the output method
- (everything is hidden by the standard C-Runtime).
- FILE HISTORY:
- johnl 10/17/90 Created
- johnl 10/18/90 Added OutputDebugString
- beng 04/30/91 Made a 'C' file
- beng 08/05/91 Withdrew expressions; reprototyped
- all functions
- beng 09/17/91 Withdrew additional consistency checks
- beng 09/26/91 Withdrew stupid nprintf calls
- gregj 03/23/93 Ported to Chicago environment
- */
- #include "npcommon.h"
- #include "npassert.h"
- extern "C" {
- const CHAR szShouldBeAnsi[] = "String should be ANSI but isn't";
- const CHAR szShouldBeOEM[] = "String should be OEM but isn't";
- static CHAR szFmt0[] = "File %.40s, Line %u";
- static CHAR szFmt1[] = "%.60s: File %.40s, Line %u";
- static CHAR szMBCaption[] = "ASSERTION FAILED";
- static CHAR szFAE[] = "ASSERTION FAILURE IN APP";
- VOID UIAssertHelper(
- const CHAR* pszFileName,
- UINT nLine )
- {
- CHAR szBuff[sizeof(szFmt0)+60+40];
- wsprintf(szBuff, szFmt0, pszFileName, nLine);
- MessageBox(NULL, szBuff, szMBCaption,
- (MB_TASKMODAL | MB_ICONSTOP | MB_OK) );
- FatalAppExit(0, szFAE);
- }
- VOID UIAssertSzHelper(
- const CHAR* pszMessage,
- const CHAR* pszFileName,
- UINT nLine )
- {
- CHAR szBuff[sizeof(szFmt1)+60+40];
- wsprintf(szBuff, szFmt1, pszMessage, pszFileName, nLine);
- MessageBox(NULL, szBuff, szMBCaption,
- (MB_TASKMODAL | MB_ICONSTOP | MB_OK) );
- FatalAppExit(0, szFAE);
- }
- //========== Debug output routines =========================================
- UINT uiNetDebugMask = 0xffff;
- UINT WINAPI NetSetDebugMask(UINT mask)
- {
- #ifdef DEBUG
- UINT uiOld = uiNetDebugMask;
- uiNetDebugMask = mask;
- return uiOld;
- #else
- return 0;
- #endif
- }
- UINT WINAPI NetGetDebugMask()
- {
- #ifdef DEBUG
- return uiNetDebugMask;
- #else
- return 0;
- #endif
- }
- #ifndef WINCAPI
- #ifdef WIN32
- #define WINCAPI __cdecl
- #else
- #define WINCAPI __far __cdecl
- #endif
- #endif
- #ifdef DEBUG
- /* debug message output log file */
- UINT g_uSpewLine = 0;
- PCSTR g_pcszSpewFile = NULL;
- CHAR s_cszLogFile[MAX_PATH] = {''};
- CHAR s_cszDebugName[MAX_PATH] = {''};
- UINT WINAPI NetSetDebugParameters(PSTR pszName,PSTR pszLogFile)
- {
- lstrcpy(s_cszLogFile,pszLogFile);
- lstrcpy(s_cszDebugName,pszName);
- return 0;
- }
- BOOL LogOutputDebugString(PCSTR pcsz)
- {
- BOOL bResult = FALSE;
- UINT ucb;
- char rgchLogFile[MAX_PATH];
- if (IS_EMPTY_STRING(s_cszLogFile) )
- return FALSE;
- ucb = GetWindowsDirectory(rgchLogFile, sizeof(rgchLogFile));
- if (ucb > 0 && ucb < sizeof(rgchLogFile)) {
- HANDLE hfLog;
- lstrcat(rgchLogFile, "\");
- lstrcat(rgchLogFile, s_cszLogFile);
- hfLog = ::CreateFile(rgchLogFile,
- GENERIC_WRITE,
- 0,
- NULL,
- OPEN_ALWAYS,
- 0,
- NULL);
- if (hfLog != INVALID_HANDLE_VALUE) {
- if (SetFilePointer(hfLog, 0, NULL, FILE_END) != INVALID_FILE_SIZE) {
- DWORD dwcbWritten;
- bResult = WriteFile(hfLog, pcsz, lstrlen(pcsz), &dwcbWritten, NULL);
- if (! CloseHandle(hfLog) && bResult)
- bResult = FALSE;
- }
- }
- }
- return(bResult);
- }
- CHAR *achDebugDisplayPrefix[] = {"t ","w ","e ","a ","t ","t ","t ","t ","t ","t ","t "};
- void WINCAPI NetDebugMsg(UINT mask, LPCSTR pszMsg, ...)
- {
- char ach[1024];
- UINT uiDisplayMask = mask & 0xff;
- // Determine prefix
- *ach = '';
- if (uiNetDebugMask & DM_PREFIX) {
- // Add trace type
- ::lstrcat(ach,achDebugDisplayPrefix[uiDisplayMask]);
- // Add component name
- ::lstrcat(ach,s_cszDebugName);
- // Add thread ID
- CHAR szThreadId[16];
- ::wsprintf(szThreadId,"[%#lx] ",::GetCurrentThreadId());
- ::lstrcat(ach,szThreadId);
- }
- ::wvsprintf(ach+::lstrlen(ach), pszMsg, (va_list)((&pszMsg) + 1));
- ::lstrcat(ach,"rn");
- if (uiNetDebugMask & DM_LOG_FILE) {
- LogOutputDebugString(ach);
- }
- // Check if we need to display this trace
- if (uiNetDebugMask & uiDisplayMask) {
- OutputDebugString(ach);
- }
- }
- #endif
- } /* extern "C" */