Bagikan melalui


/error switch

Sakelar /error menentukan jenis pemeriksaan kesalahan yang akan dilakukan stub yang dihasilkan pada durasi.

Catatan

Fitur ini usang dan tidak lagi didukung. Penggunaan sakelar /robust disarankan.

 

midl /error { allocation | stub_data | ref | bounds_check | none | all }

Opsi Sakelar

Alokasi

Memeriksa apakah midl_user_allocate mengembalikan nilai NULL , yang menunjukkan kesalahan kehabisan memori.

stub_data

Menghasilkan potong yang menangkap pengecualian yang belum mati di sisi server dan menyebarkannya kembali ke klien.

Ref

Menghasilkan kode yang menjalankan pemeriksaan pada durasi untuk memastikan bahwa tidak ada penunjuk referensi NULL yang diteruskan ke potong klien dan menimbulkan pengecualian RPC_X_NULL_REF_POINTER jika menemukannya.

bounds_check

Memeriksa ukuran array yang bervariasi dan bervariasi sesuai dengan spesifikasi panjang transmisi.

Tidak

Tidak melakukan pemeriksaan kesalahan.

Semua

Melakukan semua pemeriksaan kesalahan. Efektif dengan MIDL versi 5.0, ini adalah sakelar kompilator default.

Keterangan

Sakelar /error memilih jumlah pemeriksaan kesalahan yang akan dilakukan file stub yang dihasilkan. Efektif dengan MIDL versi 5.0, pengaturan defaultnya adalah /error all.

Kesalahan enum yang diperiksa (secara default di semua versi MIDL) adalah kesalahan pemotongan yang disebabkan saat mengonversi antara jenis enum panjang (bilangan bulat 32-bit) dan jenis enum pendek (representasi data jaringan enum), dan jumlah pengidentifikasi dalam enumerasi yang melebihi 32.767.

Pemeriksaan kesalahan akses memori (juga secara default di semua versi MIDL) adalah untuk pointer yang melebihi akhir buffer dalam kode marshaling dan untuk array yang sesuai yang ukurannya kurang dari nol. Gunakan bendera /error bounds_check untuk memeriksa batas array lain yang tidak valid.

Saat Anda menentukan alokasi /kesalahan, stub menyertakan kode yang menimbulkan pengecualian saat midl_user_allocate mengembalikan 0.

Opsi /error stub_data mencegah data klien mengalami crash pada server selama unmarshaling, secara efektif menyediakan metode yang lebih kuat untuk menangani operasi yang belum menikah.

Efektif dengan Windows 2000, mesin NDR marshaling run-time yang mendasarinya melakukan sebagian besar pemeriksaan ini. Ini berarti bahwa jika Anda menggunakan salah satu mode yang sepenuhnya ditafsirkan (/Oi, /Oif) dari pembuatan stub, memilih opsi pemeriksaan kesalahan yang berbeda tidak akan memiliki efek yang ditandai pada performa.

Contoh

midl /error allocation filename.idl

midl /error none filename.idl

Lihat juga

Sintaks Baris Perintah MIDL Umum

/Kuat