_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.