_CrtSetReportFile

_CRTDBG_MODE_FILE öğesini belirlemek için _CrtSetReportMode öğesini kullandıktan sonra, ileti metnini almak için dosya tanıtıcısını belirleyebilirsiniz.Metnin (yalnızca hata ayıklama sürümü) hedefini belirtmek için, _CrtSetReportFile öğesi _CrtDbgReport, _CrtDbgReportW tarafından da kullanılır.

_HFILE _CrtSetReportFile( 
   int reportType,
   _HFILE reportFile 
);

Parametreler

  • reportType
    Rapor türü: _CRT_WARN, _CRT_ERROR ve _CRT_ASSERT.

  • reportFile
    Yeni reportType rapor dosyası.

Dönüş Değeri

Başarıyla tamamlandığında, _CrtSetReportFilereportType içinde belirtilen rapor türü için tanımlanmış olan önceki rapor dosyasını döndürür.reportType için geçersiz bir değer geçirilirse, bu işlev geçerli parametre işleyicisini Parametre Doğrulama içinde açıklanan şekilde çağırır.Yürütmenin devam etmesine izin verilirse, errno öğesi EINVAL olarak ayarlanır ve işlev _CRTDBG_HFILE_ERROR döndürür.Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlist, and _sys_nerr.

Notlar

_CrtSetReportFile öğesi _CrtDbgReport tarafından oluşturulan belirli bir rapor türüne ilişkin hedefi veya hedefleri tanımlamak amacıyla _CrtSetReportMode işleviyle birlikte kullanılır._CrtSetReportMode, _CRTDBG_MODE_FILE raporlama modunun belirli bir türü için atandığında, _CrtSetReportFile hedef olarak kullanılmak üzere belirli bir dosya veya should then be called to define the specific file or akış tanımlamak için çağrılmalıdır._DEBUG tanımlı olmadığında _CrtSetReportFile'e çağrılar ön işleme sırasında kaldırılır.

Aşağıdaki tablo reportFile için kullanılabilen seçeneklerin ve sonuçta ortaya çıkan _CrtDbgReport davranışlarının bir listesini göstermektedir.Bu seçenekler, Crtdbg.h'de bit bayrakları olarak tanımlanır.

  • file handle
    İletilerin hedefi olacak dosyaya tanıtıcı.Tanıtıcı geçerliliğini doğrulamak için hiç girişimde bulunulmadı.Dosya tanıtıcısı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
    stderr'ye ileti yazar, bu aşağıdaki şekilde 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
    stdout'a ileti yazar, bunu yeniden yönlendirebilirsiniz.

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

Her rapor türü tarafından kullanılan rapor dosyası ayrı olarak denetlenebilir.Örneğin, _CRT_ASSERT öğesinin reportType türü bir kullanıcı tanımlı tanıtıcıya veya akışa rapor edilirken,_CRT_ERROR hatasının reportType türünün stderr öğesine rapor edilmesi olasıdır.

Gereksinimler

Yordam

Gerekli başlık

İsteğe bağlı üst bilgi

_CrtSetReportFile

<crtdbg.h>

<errno.h>

Konsol Windows Mağazası uygulamalarında desteklenmiyor.stdin, stdout ve stderr konsolları ile ilişkili standart akış işleyicileri, C çalışma zamanı işlevleri bunları Windows Mağazası uygulamalarında kullanmadan önce yeniden yönlendirilmelidir.Uyumluluk hakkında daha fazla bilgi için bkz. Uyumluluk.

Kitaplıklar: Yalnızca CRT Kitaplık Özellikleri hata giderme sürümü.

.NET Framework Eşdeğeri

Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Hata Ayıklama Yordamları