_CrtSetReportMode
Określa lokalizację docelową lub docelową dla określonego typu raportu wygenerowanego przez _CrtDbgReport
program i wszelkie makra wywołujące _CrtDbgReport
, takie _CrtDbgReportW
jak _ASSERTE
_ASSERT_EXPR
_ASSERT
, , makra i _RPT
, _RPTF
, _RPTFW
_RPTW
makra (tylko wersja debugowania).
Składnia
int _CrtSetReportMode(
int reportType,
int reportMode
);
Parametry
reportType
Typ raportu: _CRT_WARN
, _CRT_ERROR
i _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 reportMode
programu , _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_errlist
i _sys_nerr
.
Uwagi
_CrtSetReportMode
określa miejsce docelowe danych wyjściowych dla elementu _CrtDbgReport
. Ponieważ makra _ASSERT
, _ASSERTE
, _RPT
i _RPTF
wywołają _CrtDbgReport
metodę , _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 reportType elementu :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 stderr
elementu :
_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 stderr
elementu , 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.