_CrtSetReportFile

_CrtSetReportMode öğesini belirttikten _CRTDBG_MODE_FILEsonra, ileti metnini almak için dosya tutamacını belirtebilirsiniz. _CrtSetReportFile, tarafından _CrtDbgReport_CrtDbgReportW metnin hedefini belirtmek için de kullanılır (yalnızca hata ayıklama sürümü).

Sözdizimi

_HFILE _CrtSetReportFile(
   int reportType,
   _HFILE reportFile
);

Parametreler

reportType
Rapor türü: _CRT_WARN, _CRT_ERRORve _CRT_ASSERT.

reportFile
için reportTypeyeni rapor dosyası.

Dönüş değeri

Başarıyla tamamlandığında, _CrtSetReportFile içinde reportTypebelirtilen rapor türü için tanımlanan önceki rapor dosyasını döndürür. için reportTypegeçersiz bir değer geçirilirse, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, errno olarak ayarlanır EINVALve işlevi döndürür _CRTDBG_HFILE_ERROR. Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

_CrtSetReportFiletarafından oluşturulan _CrtDbgReportbelirli bir rapor türü için hedefi veya hedefleri tanımlamak için işleviyle birlikte _CrtSetReportMode kullanılır. Belirli bir rapor türü için raporlama modunu atamak üzere aradığınızda_CrtSetReportMode, hedef dosyayı veya akışı belirtmek için de arayın_CrtSetReportFile._CRTDBG_MODE_FILE Tanımlanmadığında _DEBUG , çağrısı _CrtSetReportFile ön işleme sırasında kaldırılır.

Aşağıdaki listede için reportFile kullanılabilir seçenekler ve sonuçta elde edilen davranışı _CrtDbgReportgösterilir. Bu seçenekler Crtdbg.h dosyasında bit bayrakları olarak tanımlanır.

  • dosya tutamacı

    İletiler için hedef olacak dosya tanıtıcısı. Tanıtıcının geçerliliğini doğrulamaya çalışılır. Dosyanın tutamacını açmanız ve kapatmanız gerekir. Örneğin:

    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

    İletiyi öğesine stderryazar ve bu ileti aşağıdaki gibi yeniden yönlendirilebilir:

    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

    yeniden yönlendirebileceğiniz iletiyi stdoutöğesine yazar.

  • _CRTDBG_REPORT_FILE

    Geçerli rapor modunu döndürür.

Her rapor türü tarafından kullanılan rapor dosyasını ayrı ayrı denetleyebilirsiniz. Örneğin, kullanıcı tanımlı bir reportType dosya tutamacı veya akışı aracılığıyla stderrreportType raporlardan birinin _CRT_ERROR _CRT_ASSERT üzerinden belirtilmesi mümkündür.

Gereksinimler

Yordam Gerekli başlık İsteğe bağlı üst bilgi
_CrtSetReportFile <crtdbg.h> <errno.h>

Konsol Evrensel Windows Platformu (UWP) uygulamalarında desteklenmez. C çalışma zamanı işlevlerinin UWP uygulamalarında kullanabilmesi için önce konsolu stdin, , stdoutve stderrile ilişkilendirilmiş standart akış tanıtıcılarının yeniden yönlendirilmesi gerekir. Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Kitaplıklar: Yalnızca CRT kitaplık özelliklerinin sürümlerinde hata ayıklama.

Ayrıca bkz.

Hata ayıklama yordamları