Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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