Udostępnij przez


_CrtSetReportFile

Po określeniu _CrtSetReportMode_CRTDBG_MODE_FILEelementu można określić dojście do pliku w celu odebrania wiadomości sms. _CrtSetReportFile jest również używany przez _CrtDbgReportprogram 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_ERRORi _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 reportTypenieprawidł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 EINVALwartość , a funkcja zwraca wartość _CRTDBG_HFILE_ERROR. Aby uzyskać więcej informacji, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

_CrtSetReportFile jest używany z funkcją _CrtSetReportMode do definiowania lokalizacji docelowej lub miejsc docelowych dla określonego typu raportu wygenerowanego przez _CrtDbgReportprogram . 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 stderrelementu , 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, stdouti i stderrmuszą 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.

Zobacz też

Procedury debugowania