/robust switch
L'opzione /robust indica al compilatore MIDL di generare informazioni aggiuntive di controllo degli errori, che il motore NDR usa per eseguire controlli di integrità in fase di esecuzione.
midl /robust {/Oicf | /Oif }
-
/Oicf
-
/Oif
-
Queste opzioni sono identiche nella loro funzionalità. Specificano il metodo proxy senza codice di marshalling e usano stringhe di formato rapido per migliorare le prestazioni. Vedere / Oi.
L'uso del commutatore /robust genera informazioni aggiuntive che consentono al motore Network Data Representation (NDR) di eseguire il controllo degli errori di runtime sugli argomenti correlati in matrici dinamiche, unioni e puntatori out nelle applicazioni DCOM. Il commutatore /robusto è disponibile solo in Windows 2000 e versioni successive di Windows.
Un argomento correlato è un argomento che usa uno degli attributi che consentono di determinare le dimensioni di un oggetto dati in fase di esecuzione: size_is, length_is, first_is, last_is, max_is, switch_is eiid_is. In base alla specifica OSF-DCE per la rappresentazione di filo, questo argomento correlato viene visualizzato in due posizioni diverse. Si consideri ad esempio un utilizzo tipico dell'attributo size_is :
HRESULT Func1([in] long Size,
[in, size_is(Size)]BAR_TYPE *pBarType);
In questo esempio il client passa un lungo che specifica le dimensioni di un blocco di BAR_TYPEs (in termini di numero di elementi BAR_TYPES) e un puntatore al blocco effettivo di BAR_TYPEs. L'argomento Size correla con l'argomento pBarType. In base alla specifica OSF-DCE, l'argomento Size viene rappresentato due volte sul filo, come se stesso e quindi con la matrice di elementi BAR_TYPE che rappresentano l'argomento pBarType. Ogni argomento non èmarciato in modo indipendente, in base alla propria rappresentazione di filo. In genere, l'argomento Size e la relativa copia, che viene utilizzata per rappresentare parte dell'altro argomento, hanno gli stessi valori. Tuttavia, se l'argomento Size viene danneggiato (ad esempio, quando il blocco di BAR_TYPES è maggiore di quello allocato), l'applicazione server può interrompere la risposta, perché usa il valore dell'argomento Size per misurare i dati in ingresso.
L'opzione /robust è necessaria per implementare il controllo dell'intervallo valido con l'attributo range.
midl /robust /Oicf filename.idl