_CrtSetReportMode

Určuje cíl nebo cíle pro konkrétní typ sestavy vygenerované _CrtDbgReport a všechna makra, která volají _CrtDbgReport, _CrtDbgReportWnapříklad _ASSERT, _ASSERTE_ASSERT_EXPR makra a _RPTF_RPT, _RPTW_RPTFW makra (pouze ladicí verze).

Syntaxe

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

Parametry

reportType
Typ sestavy: _CRT_WARN, _CRT_ERRORa _CRT_ASSERT.

reportMode
Nový režim sestavy nebo režimy pro reportType.

Vrácená hodnota

Po úspěšném dokončení _CrtSetReportMode vrátí předchozí režim sestavy nebo režimy pro typ sestavy zadaný v reportType. Pokud je zadána neplatná hodnota jako reportType nebo je zadán reportModeneplatný režim , _CrtSetReportMode vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tato funkce nastaví errnoEINVAL hodnotu -1 a vrátí hodnotu -1. Další informace naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.

Poznámky

_CrtSetReportMode určuje výstupní cíl pro _CrtDbgReport. Vzhledem k tomu, že makra _ASSERT, _ASSERTE, _RPTa _RPTF volání _CrtDbgReport, _CrtSetReportMode určuje výstupní cíl textu zadaný těmito makry.

Pokud _DEBUG není definováno, volání, která _CrtSetReportMode se mají odebrat během předběžného zpracování.

Pokud nevoláte _CrtSetReportMode , abyste definovali výstupní cíl zpráv, platí následující výchozí hodnoty:

  • Chyby kontrolního výrazu a chyby jsou směrovány do okna zprávy ladění.

  • Upozornění z aplikací systému Windows se odesílají do okna výstupu ladicího programu.

  • Upozornění z konzolových aplikací se nezobrazují.

Následující tabulka obsahuje seznam typů sestav definovaných v Crtdbg.h.

Typ sestavy Popis
_CRT_WARN Upozornění, zprávy a informace, které nevyžadují okamžitou pozornost.
_CRT_ERROR Chyby, neopravitelné problémy a problémy, které vyžadují okamžitou pozornost.
_CRT_ASSERT Selhání kontrolních výrazů (asserted expressions, které se vyhodnocují jako FALSE).

Funkce _CrtSetReportMode přiřadí nový režim sestavy zadaný reportMode v typu reportType sestavy a vrátí dříve definovaný režim sestavy pro reportType. Následující tabulka uvádí dostupné volby pro reportMode a výsledné chování _CrtDbgReport. Tyto možnosti jsou definovány jako příznaky bitů v Crtdbg.h.

Režim sestavy chování _CrtDbgReport
_CRTDBG_MODE_DEBUG Zapíše zprávu do výstupního okna ladicího programu.
_CRTDBG_MODE_FILE Zapíše zprávu do popisovače souboru zadaného uživatelem. _CrtSetReportFile musí být volána k definování konkrétního souboru nebo datového proudu, který se má použít jako cíl.
_CRTDBG_MODE_WNDW Vytvoří okno se zprávou pro zobrazení zprávy spolu s tlačítky Přerušit, Opakovat a Ignorovat .
_CRTDBG_REPORT_MODE Vrátí reportMode pro zadanou reportTypehodnotu:

1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW

Každý typ sestavy lze hlásit pomocí jednoho, dvou nebo tří režimů nebo žádný režim vůbec. Proto je možné mít pro jeden typ sestavy definovaných více než jeden cíl. Následující fragment kódu například způsobí odeslání kontrolních výrazů do okna zprávy ladění i do stderr:

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

Kromě toho můžete řídit režim generování sestav nebo režimy pro každý typ sestavy samostatně. Je například možné určit, že určitý reportType z těchto _CRT_WARN kroků přejde do výstupního ladicího řetězce, zatímco _CRT_ASSERT se zobrazí pomocí okna zprávy ladění a odešle se do stderrsouboru , jak je znázorněno dříve.

Požadavky

Rutina Požadovaný hlavičkový soubor Volitelné záhlaví
_CrtSetReportMode <crtdbg.h> <errno.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny: Ladění verzí pouze knihoven modulu runtime jazyka C.

Viz také

Rutiny ladění