Отладка приложений



              

Требования к TraceSrv - часть 7


OLECHAR * pCurr = m__cOutput.GetDataBuffer ( ) ;

 if ( -1 = m_vbShowItemNumber ) 

{

pCurr += wsprintfW ( pCurr , L"%05d " , m_dwCurrCount ) ;

 }

if ( -1 == m_vbShowTimeStamps ) 

{

// Показать метку времени в формате местного пользователя.

 // (здесь сервер, а не в клиент!). Я устанавливаю метку

 // в 24-часовом формате.

int iLen = GetTimeFormatW ( LOCALE_USER_DEFAULT ,

LOCALE_NOUSEROVERRIDE |

TIME_FORCE24HOURFORMAT |

TIME_NOTIMEMARKER , 

NULL

NULL , 

pCurr ,

 k_SIZE_TIME ) ; ASSERT ( 0 != iLen ) ;

// Переместить указатель, но не забыть о наличии

 // NULL-символа в конце строки. 

pCurr 4= ( iLen - I ) ;

11 GetTimeFormat не добавляет дополнительного пробела,

 // поэтому добавляем его сейчас.

*pCurr = L' ' ;

pCurr++ ;

 }

if ( -1 == m_vbShowPID )

 {

pCurr += wsprintfW ( pCurr , L"[%04X] " , dwPID ) ; 

}

// Теперь поместите в буфер фактическое сообщение и копируйте

 // NULL-терминатор в конец строки.

 IstrcpynW ( pCurr , bstrText , IlnputLeri + 1 ) ;

 // Переместить pCurr, чтобы указать на NULL-терминатор.

 pCurr += ilnputLen ;

// Проверить, не нужны ли символы CRLF в конце строки, 

if ( -1 == m_vbAddCRLF ) 

{

if ( ( L';\xOD'; != *( pCurr _ 2 ) ) || 

( L';\xOA'; != *( pCurr _ 1 ) ) )

{

*( pCurr ) = L';\xOD;;

*( pCurr + 1 } = L';\xOA'; ;

 pCurr += 2 ;

*pCurr = YL';\0'; ;

}

// Предполагается ли получить снимок для отладчика режима ядра?

 if ( -1 == m_vbShowTraceAsODS )

 {

OutputDebugStringW ( (OLECHAR*) m_cOutput ) ; 

}

// Подсчитать длину строки. 

m_cOutput.GetStringByteLength ( ) ;

 // Вывод сообщения о результате трассировки.

#ifdef _DEBUG

HRESULT hr =

#endif

Fire_TraceEvent ( m_cOutput ) ;

 #ifdef _DEBUG

if ( ! SUCCEEDED ('hr ) ) 

{

ASSERT ( SUCCEEDED ( hr ) ) ;

TRACE ( Т ( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" ) ) ; 




Содержание  Назад  Вперед