Udostępnij za pośrednictwem


_CrtSetReportMode

Określa lokalizację docelową lub docelową dla określonego typu raportu wygenerowanego przez _CrtDbgReport program i wszelkie makra wywołujące _CrtDbgReport, takie _CrtDbgReportWjak _ASSERTE_ASSERT_EXPR_ASSERT, , makra i _RPT, _RPTF, _RPTFW _RPTWmakra (tylko wersja debugowania).

Składnia

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

Parametry

reportType
Typ raportu: _CRT_WARN, _CRT_ERRORi _CRT_ASSERT.

reportMode
Nowy tryb lub tryby raportu dla programu reportType.

Wartość zwracana

Po pomyślnym zakończeniu _CrtSetReportMode zwraca poprzedni tryb raportu lub tryby dla typu raportu określonego w .reportType Jeśli nieprawidłowa wartość jest przekazywana jako reportType lub określono nieprawidłowy tryb dla reportModeprogramu , _CrtSetReportMode wywołuje nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie może kontynuować, ta funkcja ustawia errno EINVAL wartość i zwraca wartość -1. Aby uzyskać więcej informacji, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

_CrtSetReportMode określa miejsce docelowe danych wyjściowych dla elementu _CrtDbgReport. Ponieważ makra _ASSERT, _ASSERTE, _RPTi _RPTF wywołają _CrtDbgReportmetodę , _CrtSetReportMode określa miejsce docelowe wyjściowe tekstu określonego przy użyciu tych makr.

Gdy _DEBUG nie jest zdefiniowana, wywołania do _CrtSetReportMode są usuwane podczas przetwarzania wstępnego.

Jeśli nie wywołasz metody _CrtSetReportMode w celu zdefiniowania miejsca docelowego danych wyjściowych komunikatów, obowiązują następujące wartości domyślne:

  • Błędy potwierdzeń są kierowane do okna komunikatów debugowania.

  • Ostrzeżenia z aplikacji systemu Windows są wysyłane do okna danych wyjściowych debugera.

  • Ostrzeżenia z aplikacji konsolowych nie są wyświetlane.

W poniższej tabeli wymieniono typy raportów zdefiniowane w pliku Crtdbg.h.

Typ raportu opis
_CRT_WARN Ostrzeżenia, komunikaty i informacje, które nie wymagają natychmiastowej uwagi.
_CRT_ERROR Błędy, nieodwracalne problemy i kwestie, które wymagają natychmiastowej uwagi.
_CRT_ASSERT Błędy asercji (wyrażenia asercji, które oceniają wartość ).FALSE

Funkcja _CrtSetReportMode przypisuje nowy tryb raportu określony w programie do typu raportu określonego w reportMode reportType pliku i zwraca wcześniej zdefiniowany tryb raportu dla elementu reportType. W poniższej tabeli wymieniono dostępne opcje i reportMode wynikowe zachowanie klasy _CrtDbgReport. Te opcje są definiowane jako flagi bitowe w pliku Crtdbg.h.

Tryb raportu Zachowanie funkcji _CrtDbgReport
_CRTDBG_MODE_DEBUG Zapisywanie komunikatu w oknie danych wyjściowych debugera.
_CRTDBG_MODE_FILE Zapisywanie komunikatu w dojściu do pliku wskazanym przez użytkownika. _CrtSetReportFile Należy wywołać wywołanie w celu zdefiniowania określonego pliku lub strumienia do użycia jako miejsca docelowego.
_CRTDBG_MODE_WNDW Tworzy okno komunikatu, aby wyświetlić komunikat wraz z przyciskami Przerwij, Ponów próbę i Ignoruj .
_CRTDBG_REPORT_MODE Zwraca reportMode wartość dla określonego reportTypeelementu :

1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW

Każdy typ raportu może być przekazywany przy użyciu jednego, dwóch lub trzech trybów albo bez żadnego trybu. W związku z tym można mieć więcej niż jedno miejsce docelowe zdefiniowane dla jednego typu raportu. Na przykład następujący fragment kodu powoduje, że błędy asercji są wysyłane do okna komunikatu debugowania i do stderrelementu :

_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );

Ponadto można kontrolować tryb raportowania lub tryby dla każdego typu raportu oddzielnie. Na przykład można określić, że element reportType _CRT_WARN z przechodzi do ciągu debugowania danych wyjściowych, podczas gdy _CRT_ASSERT jest wyświetlany przy użyciu okna komunikatu debugowania i jest wysyłany do stderrelementu , jak pokazano wcześniej.

Wymagania

Procedura Wymagany nagłówek Opcjonalny nagłówek
_CrtSetReportMode <crtdbg.h> <errno.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Biblioteki: debugowanie tylko wersji bibliotek środowiska uruchomieniowego języka C.

Zobacz też

Procedury debugowania