/error switch

L'opzione /error determina i tipi di controllo degli errori che gli stub generati verranno eseguiti in fase di esecuzione.

Nota

Questa funzionalità è obsoleta e non è più supportata. È consigliabile usare l'opzione /robust .

 

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

Opzioni switch

Allocazione

Verifica se midl_user_allocate restituisce un valore NULL , che indica un errore di memoria insufficiente.

stub_data

Genera uno stub che rileva le eccezioni di annullamento delmarshaling sul lato server e le propaga nuovamente al client.

Ref

Genera il codice che esegue un controllo in fase di esecuzione per assicurarsi che non vengano passati puntatori di riferimento NULL agli stub del client e generi un'eccezione RPC_X_NULL_REF_POINTER, se presente.

bounds_check

Controlla le dimensioni delle matrici conformi e variabili rispetto alla specifica della lunghezza della trasmissione.

Nessuno

Non esegue alcun controllo degli errori.

Tutti

Esegue tutto il controllo degli errori. Valido con MIDL versione 5.0, si tratta di un'opzione del compilatore predefinita.

Commenti

L'opzione /error seleziona il numero di controlli degli errori che verranno eseguiti dai file stub generati. A partire dalla versione MIDL 5.0, l'impostazione predefinita è /error all.

Gli errori di enumerazione verificati (per impostazione predefinita in tutte le versioni di MIDL) sono errori di troncamento causati dalla conversione tra tipi di enumerazione lunghi (numeri interi a 32 bit) e tipi di enumerazione brevi (rappresentazione dei dati di rete dell'enumerazione) e il numero di identificatori in un'enumerazione che supera 32.767.

Il controllo degli errori di accesso alla memoria (anche per impostazione predefinita in tutte le versioni di MIDL) è destinato ai puntatori che superano la fine del buffer nel codice di marshalling e per le matrici conformi le cui dimensioni sono inferiori a zero. Usare il flag /error bounds_check per verificare la presenza di altri limiti di matrice non validi.

Quando si specifica l'allocazione /error, gli stub includono codice che genera un'eccezione quando midl_user_allocate restituisce 0.

L'opzione /error stub_data impedisce ai dati client di arrestare il server durante l'annullamento delmarshaling, fornendo in modo efficace un metodo più affidabile per la gestione dell'operazione di annullamento delmarshaling.

A partire da Windows 2000, il motore di marshalling NDR di runtime sottostante esegue la maggior parte di questi controlli. Ciò significa che se si usa una delle modalità completamente interpretate (/Oi, /Oif) della generazione di stub, la scelta di opzioni di controllo degli errori diverse non avrà un effetto contrassegnato sulle prestazioni.

Esempio

midl /error allocation filename.idl

midl /error none filename.idl

Vedi anche

Sintassi generale della riga di comando MIDL

/Robusto