_RPT
, , _RPTF
_RPTW
, _RPTFW
makra
Sleduje průběh aplikace generováním sestavy ladění (pouze ladicí verze). Přípona n
určuje počet argumentů v args
argumentu a může být 0, 1, 2, 3, 4 nebo 5.
Syntaxe
_RPTn(
reportType,
format,
...[args]
);
_RPTFn(
reportType,
format,
[args]
);
_RPTWn(
reportType,
format
[args]
);
_RPTFWn(
reportType,
format
[args]
);
Parametry
reportType
Typ sestavy: _CRT_WARN
, _CRT_ERROR
nebo _CRT_ASSERT
.
format
Formátovací řetězec použitý k vytvoření zprávy uživatele.
args
Argumenty nahrazení používané .format
Poznámky
Všechna tato makra přebírají reportType
parametry.format
Kromě toho můžou také trvat až čtyři další argumenty, které označuje číslo připojené k názvu makra. Například_RPT0
, a _RPTF0
vzít žádné další argumenty, _RPT1
_RPTF1
vzít _RPT2
arg1
a _RPTF2
vzít arg1
a arg2
atd.
Makra _RPT
a _RPTF
makra jsou podobné printf
funkci, protože je možné je použít ke sledování průběhu aplikace během procesu ladění. Tato makra jsou ale flexibilnější než printf
proto, že není nutné je uzavřít do příkazů #ifdef , aby se zabránilo jejich zavolání v maloobchodním buildu aplikace. Tato flexibilita se dosahuje pomocí _DEBUG
makra. Makra _RPT
jsou _RPTF
k dispozici pouze v případě, že _DEBUG
je definován příznak. Pokud _DEBUG
není definováno, volání těchto maker se během předběžného zpracování odeberou.
Makra _RPTW
jsou _RPTFW
širokoznační verze těchto maker. Jsou jako argumenty a wprintf
používají řetězce širokého znaku.
Makra _RPT
volají _CrtDbgReport
funkci, která vygeneruje sestavu ladění se zprávou uživatele. Makra _RPTW
volají _CrtDbgReportW
funkci, která vygeneruje stejnou sestavu se širokými znaky. _RPTFW
Makra _RPTF
vytvoří ladicí sestavu se zdrojovým souborem a číslem řádku, kde se makro sestavy volalo, a to kromě zprávy uživatele. Uživatelská zpráva je vytvořena nahrazením arg[n]
argumentů do format
řetězce pomocí stejných pravidel definovaných printf
funkcí.
_CrtDbgReport
nebo _CrtDbgReportW
vygeneruje ladicí sestavu a určí její cíle na základě aktuálních režimů sestavy a souboru definovaného pro reportType
. _CrtSetReportFile
Funkce _CrtSetReportMode
slouží k definování cílů pro každý typ sestavy.
_RPT
Pokud je makro voláno a _CrtSetReportMode
_CrtSetReportFile
nebylo voláno, zprávy se zobrazí takto:
Typ sestavy | Cíl výstupu |
---|---|
_CRT_WARN |
Text upozornění se nezobrazuje. |
_CRT_ERROR |
Automaticky otevírané okno. Stejné jako v případě, že _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); bylo zadáno. |
_CRT_ASSERT |
Stejné jako _CRT_ERROR . |
Když je cílem okno zprávy ladění a uživatel zvolí tlačítko Opakovat , _CrtDbgReport
nebo _CrtDbgReportW
vrátí hodnotu 1. Tato návratová hodnota způsobí, že tato makra spustí ladicí program, pokud je povolené ladění za běhu (JIT). Další informace o použití těchto maker jako mechanismu zpracování chyb ladění najdete v tématu Makra pro vytváření sestav.
Existují dvě další makra, která generují sestavu ladění. Makro _ASSERT
generuje sestavu, ale pouze při vyhodnocení argumentu výrazu FALSE
. _ASSERTE
je úplně stejný, _ASSERT
ale obsahuje výraz, který selhal ve vygenerované sestavě.
Požadavky
Makro | Požadovaný hlavičkový soubor |
---|---|
_RPT makra |
<crtdbg.h> |
_RPTF makra |
<crtdbg.h> |
_RPTW makra |
<crtdbg.h> |
_RPTFW makra |
<crtdbg.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Ladění pouze verzí knihoven runtime jazyka C.
I když jsou tato makra dostupná, když zahrnete crtdbg.h
, aby bylo možné spustit, musí aplikace propojit s jednou z ladicích knihoven, protože tato makra volají další funkce za běhu.
Příklad
Podívejte se na příklad v _ASSERT
článku.