/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 }
-
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.
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.
midl /error allocation filename.idl
midl /error none filename.idl