_RPT, _RPTF, _RPTW, _RPTFW Makro

Melacak kemajuan aplikasi dengan membuat laporan debug (hanya versi debug). Akhiran n menentukan jumlah argumen dalam args, dan bisa 0, 1, 2, 3, 4, atau 5.

Sintaks

_RPTn(
   reportType,
   format,
   ...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format
   [args]
);
_RPTFWn(
   reportType,
   format
   [args]
);

Parameter

reportType
Jenis laporan: _CRT_WARN, _CRT_ERROR, atau _CRT_ASSERT.

format
String kontrol format yang digunakan untuk membuat pesan pengguna.

args
Argumen substitusi yang digunakan oleh format.

Keterangan

Semua makro ini mengambil reportType parameter dan format . Selain itu, mereka mungkin juga mengambil hingga empat argumen lagi, ditandatangani oleh angka yang ditambahkan ke nama makro. Misalnya, _RPT0 dan _RPTF0 tidak mengambil argumen lagi, _RPT1 dan _RPTF1 mengambil arg1, _RPT2 dan _RPTF2 mengambil arg1 dan arg2, dan sebagainya.

_RPT Makro dan _RPTF mirip printf dengan fungsi , karena dapat digunakan untuk melacak kemajuan aplikasi selama proses penelusuran kesalahan. Namun, makro ini lebih fleksibel daripada printf karena tidak perlu diapit dalam pernyataan #ifdef untuk mencegahnya dipanggil dalam build ritel aplikasi. Fleksibilitas ini dicapai dengan menggunakan _DEBUG makro; _RPT makro dan _RPTF hanya tersedia saat _DEBUG bendera ditentukan. Ketika _DEBUG tidak ditentukan, panggilan ke makro ini dihapus selama praproses.

_RPTW Makro dan _RPTFW adalah versi karakter lebar dari makro ini. Mereka seperti wprintf dan mengambil string karakter lebar sebagai argumen.

_RPT Makro memanggil _CrtDbgReport fungsi untuk menghasilkan laporan debug dengan pesan pengguna. _RPTW Makro memanggil _CrtDbgReportW fungsi untuk menghasilkan laporan yang sama dengan karakter lebar. _RPTF Makro dan _RPTFW membuat laporan debug dengan file sumber dan nomor baris tempat makro laporan dipanggil, selain pesan pengguna. Pesan pengguna dibuat dengan mengganti arg[n] argumen ke dalam format string, menggunakan aturan yang sama yang ditentukan oleh printf fungsi .

_CrtDbgReport atau _CrtDbgReportW menghasilkan laporan debug dan menentukan tujuannya berdasarkan mode laporan saat ini dan file yang ditentukan untuk reportType. Fungsi _CrtSetReportMode dan _CrtSetReportFile digunakan untuk menentukan tujuan untuk setiap jenis laporan.

_RPT Jika makro dipanggil, dan _CrtSetReportMode dan _CrtSetReportFile belum dipanggil, pesan ditampilkan sebagai berikut:

Jenis laporan Tujuan output
_CRT_WARN Teks peringatan tidak ditampilkan.
_CRT_ERROR Jendela pop-up. Sama seperti jika _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); telah ditentukan.
_CRT_ASSERT Sama seperti _CRT_ERROR.

Saat tujuan adalah jendela pesan debug dan pengguna memilih tombol Coba Lagi, _CrtDbgReport atau _CrtDbgReportW mengembalikan 1. Nilai pengembalian ini menyebabkan makro ini memulai debugger, jika penelusuran kesalahan just-in-time (JIT) diaktifkan. Untuk informasi selengkapnya tentang menggunakan makro ini sebagai mekanisme penanganan kesalahan penelusuran kesalahan, lihat Makro untuk pelaporan.

Ada dua makro lain yang menghasilkan laporan debug. _ASSERT Makro menghasilkan laporan, tetapi hanya ketika argumen ekspresinya mengevaluasi ke FALSE. _ASSERTE persis seperti _ASSERT, tetapi menyertakan ekspresi yang gagal dalam laporan yang dihasilkan.

Persyaratan

Makro Header yang diperlukan
_RPT makro <crtdbg.h>
_RPTF makro <crtdbg.h>
_RPTW makro <crtdbg.h>
_RPTFW makro <crtdbg.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Pustaka

Debug versi pustaka run-time C saja.

Meskipun makro ini tersedia saat Anda menyertakan crtdbg.h, untuk dijalankan, aplikasi harus ditautkan dengan salah satu pustaka debug, karena makro ini memanggil fungsi run-time lainnya.

Contoh

Lihat contoh dalam _ASSERT artikel.

Baca juga

Rutinitas debug