_CrtSetReportFile
Po określeniu _CrtSetReportMode
_CRTDBG_MODE_FILE
elementu można określić dojście do pliku w celu odebrania wiadomości sms. _CrtSetReportFile
jest również używany przez _CrtDbgReport
program do _CrtDbgReportW
określania miejsca docelowego tekstu (tylko wersja debugowania).
Składnia
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parametry
reportType
Typ raportu: _CRT_WARN
, _CRT_ERROR
i _CRT_ASSERT
.
reportFile
Nowy plik raportu dla elementu reportType
.
Wartość zwracana
Po pomyślnym zakończeniu _CrtSetReportFile
zwraca poprzedni plik raportu zdefiniowany dla typu raportu określonego w pliku reportType
. Jeśli dla elementu przekazano reportType
nieprawidłową wartość , ta funkcja wywołuje nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, errno
jest ustawione na EINVAL
wartość , a funkcja zwraca wartość _CRTDBG_HFILE_ERROR
. Aby uzyskać więcej informacji, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
_CrtSetReportFile
jest używany z funkcją _CrtSetReportMode
do definiowania lokalizacji docelowej lub miejsc docelowych dla określonego typu raportu wygenerowanego przez _CrtDbgReport
program . Podczas wywoływania _CrtSetReportMode
w celu przypisania trybu raportowania _CRTDBG_MODE_FILE
dla określonego typu raportu wywołaj również metodę _CrtSetReportFile
, aby określić docelowy plik lub strumień. Gdy _DEBUG
nie jest zdefiniowana, wywołania do _CrtSetReportFile
są usuwane podczas przetwarzania wstępnego.
Na poniższej liście przedstawiono dostępne opcje reportFile
i wynikowe zachowanie klasy _CrtDbgReport
. Te opcje są definiowane jako flagi bitowe w pliku Crtdbg.h.
dojście do pliku
Dojście do pliku, który będzie miejscem docelowym komunikatów. Nie podjęto żadnej próby zweryfikowania poprawności uchwytu. Musisz otworzyć i zamknąć dojście do pliku. Na przykład:
HANDLE hLogFile; hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); _CrtSetReportFile(_CRT_WARN, hLogFile); _RPT0(_CRT_WARN,"file message\n"); CloseHandle(hLogFile);
_CRTDBG_FILE_STDERR
Zapisuje komunikat w pliku
stderr
, który można przekierować w następujący sposób:freopen( "c:\\log2.txt", "w", stderr); _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE); _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); _RPT0(_CRT_ERROR,"1st message\n");
_CRTDBG_FILE_STDOUT
Zapisuje komunikat w pliku
stdout
, który można przekierować._CRTDBG_REPORT_FILE
Zwraca bieżący tryb raportu.
Plik raportu używany przez każdy typ raportu można kontrolować oddzielnie. Można na przykład określić, że reportType
raport za pośrednictwem stderr
elementu , a reportType
raport za pośrednictwem uchwytu _CRT_ERROR
_CRT_ASSERT
lub strumienia pliku zdefiniowanego przez użytkownika.
Wymagania
Procedura | Wymagany nagłówek | Opcjonalny nagłówek |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
Konsola nie jest obsługiwana w aplikacjach platformy platforma uniwersalna systemu Windows (UWP). Standardowe dojścia strumienia skojarzone z konsolą programu stdin
, stdout
i i stderr
muszą zostać przekierowane, zanim funkcje czasu wykonywania języka C będą mogły ich używać w aplikacjach platformy UWP. Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Biblioteki: debugowanie tylko wersji funkcji biblioteki CRT.