/error switch

De schakeloptie /error bepaalt de typen foutcontrole die de gegenereerde stubs tijdens runtime uitvoeren.

Opmerking

Deze functie is verouderd en wordt niet meer ondersteund. Het gebruik van de /robuuste switch wordt aanbevolen.

 

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

Schakelen tussen opties

Toewijzing

Controleert of midl_user_allocate een NULL-waarde retourneert, wat een fout met onvoldoende geheugen aangeeft.

stub_data

Hiermee wordt een stub gegenereerd die niet-marshaling-uitzonderingen aan de serverzijde onderschept en weer doorstuurt naar de client.

Ref

Hiermee genereert u code die tijdens de uitvoering een controle uitvoert om ervoor te zorgen dat er geen NULL-verwijzingspunten worden doorgegeven aan de client-stubs en een RPC_X_NULL_REF_POINTER uitzondering wordt gegenereerd als deze er een vindt.

bounds_check

Controleert de grootte van conforme en variërende matrices op basis van de specificatie van de transmissielengte.

Geen

Voert geen foutcontrole uit.

Alle

Voert alle foutcontrole uit. Dit is een standaardcompilatieswitch met MIDL versie 5.0.

Opmerkingen

De schakeloptie /error selecteert het aantal foutcontroles dat door de gegenereerde stub-bestanden wordt uitgevoerd. Vanaf MIDL versie 5.0 is de standaardinstelling /error all.

De enum-fouten die worden gecontroleerd (standaard in alle versies van MIDL) zijn afkappingsfouten die worden veroorzaakt bij het converteren tussen lange enumtypen (32-bits gehele getallen) en korte enumtypen (de netwerkgegevensweergave van enum) en het aantal id's in een opsomming van meer dan 32.767.

De foutcontrole voor geheugentoegang (ook in alle versies van MIDL) is bedoeld voor aanwijzers die het einde van de buffer in marshaling-code overschrijden en voor conforme matrices waarvan de grootte kleiner is dan nul. Gebruik de vlag /error bounds_check om te controleren op andere ongeldige matrixgrenzen.

Wanneer u /error allocation opgeeft, bevatten de stubs code die een uitzondering genereert wanneer midl_user_allocate 0 retourneert.

Met de optie /error stub_data voorkomt u dat clientgegevens de server vastlopen tijdens het niet-marsen, waardoor een krachtigere methode wordt geboden voor het afhandelen van de niet-omlijningsbewerking.

Met ingang van Windows 2000 voert de onderliggende runtime NDR-marshaling-engine de meeste van deze controles uit. Dit betekent dat als u een van de volledig geïnterpreteerde modi (/Oi, /Oif) van stub generatie gebruikt, het kiezen van verschillende opties voor foutcontrole geen gemarkeerd effect heeft op de prestaties.

Examples

midl /error allocation filename.idl

midl /error none filename.idl

Zie ook

Algemene syntaxis van de MIDL-opdrachtregel

/Robuuste