/error switch

Przełącznik /error określa typy sprawdzania błędów, że wygenerowane wycinki będą wykonywane w czasie wykonywania.

Uwaga / Notatka

Ta funkcja jest przestarzała i nie jest już obsługiwana. Zalecane jest użycie przełącznika /robust .

 

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

Opcje przełącznika

Alokacji

Sprawdza, czy midl_user_allocate zwraca wartość NULL wskazującą błąd braku pamięci.

stub_data

Generuje wycinkę, która przechwytuje wyjątki nierozszaczające po stronie serwera i propaguje je z powrotem do klienta.

Ref

Generuje kod, który uruchamia sprawdzanie w czasie wykonywania, aby upewnić się, że żadne wskaźniki referencyjne o wartości NULL nie są przekazywane do wycinków klienta i zgłasza wyjątek RPC_X_NULL_REF_POINTER, jeśli znajdzie.

bounds_check

Sprawdza rozmiar zgodnej i różnej tablicy pod kątem specyfikacji długości transmisji.

Brak

Nie przeprowadza sprawdzania błędów.

Wszystkie

Wykonuje wszystkie sprawdzanie błędów. W wersji MIDL w wersji 5.0 jest to domyślny przełącznik kompilatora.

Uwagi

Przełącznik /error wybiera liczbę testów błędów, które zostaną wykonane przez wygenerowane pliki wycinków. Obowiązujące w wersji MIDL w wersji 5.0 domyślne ustawienie to /error all.

Błędy wyliczenia sprawdzane (domyślnie we wszystkich wersjach MIDL) są błędami obcinania spowodowanymi konwersją między długimi typami wyliczeniowymi (liczbami całkowitymi 32-bitowymi) i krótkimi typami wyliczenia (reprezentacją danych sieciowych wyliczenia ) oraz liczbą identyfikatorów w wyliczenie przekraczającym 32 767.

Sprawdzanie błędów dostępu do pamięci (również domyślnie we wszystkich wersjach MIDL) dotyczy wskaźników przekraczających koniec buforu w kodzie marshalingu i dla zgodnych tablic, których rozmiar jest mniejszy niż zero. Użyj flagi /error bounds_check , aby sprawdzić inne nieprawidłowe granice tablicy.

Po określeniu /error alokacji wycinki zawierają kod, który zgłasza wyjątek, gdy midl_user_allocate zwraca wartość 0.

/error stub_data opcja zapobiega awarii serwera klienta podczas unmarshaling, zapewniając bardziej niezawodną metodę obsługi operacji unmarshaling.

Począwszy od Windows 2000 r., podstawowy aparat marshalingowy NDR w czasie wykonywania wykonuje większość tych testów. Oznacza to, że jeśli używasz jednego z w pełni interpretowanych trybów (/Oi, /Oif) generowania wycinków, wybranie różnych opcji sprawdzania błędów nie będzie miało wyraźnego wpływu na wydajność.

Examples

midl /error allocation filename.idl

midl /error none filename.idl

Zobacz także

Ogólna składnia wiersza polecenia MIDL

/Solidne