/error switch

Přepínač /error určuje typy kontroly chyb, které budou generované zástupné procedury provádět za běhu.

Poznámka:

Tato funkce je zastaralá a už se nepodporuje. Doporučuje se použít přepínač /robust .

 

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

Možnosti přepínače

Přidělení

Zkontroluje, jestli midl_user_allocate vrací hodnotu NULL označující chybu typu nedostatek paměti.

stub_data

Vygeneruje zástupný kód, který zachytí výjimky, které na straně serveru nezachytí, a rozšíří je zpět do klienta.

Ref

Vygeneruje kód, který spustí kontrolu za běhu, aby se zajistilo, že klient nepředá žádné odkazové ukazatele NULL , a vyvolá výjimku RPC_X_NULL_REF_POINTER, pokud nějaké najde.

bounds_check

Kontroluje velikost vyhovujících a proměnlivých polí podle specifikace délky přenosu.

Žádný

Neprovádí žádnou kontrolu chyb.

Všechny

Provede kontrolu všech chyb. Efektivní s MIDL verze 5.0, jedná se o výchozí přepínač kompilátoru.

Poznámky

Přepínač /error vybere počet kontrol chyb, které budou vygenerované soubory zástupných procedur provádět. Efektivní s MIDL verze 5.0, výchozí nastavení je /error all.

Chyby výčtu, které jsou zaškrtnuté (ve výchozím nastavení ve všech verzích MIDL), jsou chyby zkrácení způsobené převodem mezi dlouhými typy výčtů (32bitové celá čísla) a krátkými typy výčtu (reprezentace výčtu síťových dat) a počtem identifikátorů v výčtu přesahujícím 32 767.

Kontrola chyb přístupu k paměti (ve výchozím nastavení ve všech verzích MIDL) je určena pro ukazatele, které překračují konec vyrovnávací paměti v zařazování kódu a pro odpovídající pole, jejichž velikost je menší než nula. Pomocí příznaku /error bounds_check zkontrolujte další neplatné hranice pole.

Když zadáte přidělení /error, zástupné procedury obsahují kód, který vyvolá výjimku při midl_user_allocate vrátí hodnotu 0.

Možnost /error stub_data zabraňuje chybovému ukončení serveru během nesmažení serveru, což efektivně poskytuje robustnější metodu zpracování operace nesmažení.

S Windows 2000 provádí základní modul zařazování oznámení o nedoručení zařazování zařazování za běhu většinu těchto kontrol. To znamená, že pokud používáte jeden z plně interpretovaných režimů (/Oi, /Oif) generování zástupných procedur, výběr různých možností kontroly chyb nebude mít výrazný vliv na výkon.

Příklady

midl /error allocation filename.idl

midl /error none filename.idl

Viz také

Obecná syntaxe příkazového řádku MIDL

/Robustní