Opzione /osf
Il commutatore /osf forza la stretta compatibilità con OSF DCE.
midl /osf
Questo commutatore non ha parametri.
Usare questa opzione se l'applicazione richiede una stretta compatibilità con OSF DCE per motivi di portabilità.
In modalità /osf il pacchetto RpcSs viene abilitato automaticamente quando si usano puntatori completi, gli argomenti richiedono l'allocazione della memoria o quando si usa l'attributo enable_allocate . Ciò significa che non è necessario fornire le funzioni di midl_user_allocate e midl_user_free nell'applicazione client e server.
Le funzionalità estese microsoft seguenti non sono disponibili quando si compila con l'opzione /osf :
- Dichiaratori astratti (parametri senza nome) nel file IDL.
- Definizioni di interfaccia per gli oggetti COM.
- Nomi di interfaccia con più di 17 caratteri.
- Attributi solo MIDL, ad esempio wire_marshal, user_marshal e estensioni typelib (ODL).
- Uso delle parole chiave ACF in un file IDL (opzione MIDL /app_config ).
- Funzioni di callback statiche nel client.
- Attributo asincrono .
- cpp_quote e #pragma midl_echo.
- wchar_t tipi di caratteri wide, costanti e stringhe.
- inizializzazione enumerazione (enumeratori sparse).
- specifica delle dimensioni out-only.
- Puntatori di dimensioni miste e matrici di dimensioni.
- Espressioni usate per gli identificatori di dimensione e di discriminazione.
- Parametri di handle espliciti in qualsiasi posizione nell'elenco degli argomenti. In modalità /osf il compilatore MIDL cerca un handle di associazione esplicito come primo parametro. Quando il primo parametro non è un handle di associazione e vengono specificati uno o più handle di contesto, l'handle di contesto più a sinistra viene usato come handle di associazione. Quando il primo parametro non è un handle e non sono presenti handle di contesto, la procedura usa l'associazione implicita usando l'attributo ACF implicit_handle o auto_handle.
- Ereditarietà del tipo di attributo puntatore. Il controller di dominio OSF non consente puntatori non attributi. Pertanto, in modalità /osf ogni file IDL deve definire gli attributi per i puntatori. Se un puntatore non ha un attributo esplicito, il file IDL deve avere una specifica pointer_default per impostare il tipo di puntatore.
- Più interfacce in un file IDL.
- Definizioni esterne al blocco di interfaccia.
- Qualificatori di tipo, ad esempio lontano e stdcall.
- Omettendo attributi direzionali.
Le estensioni del linguaggio C/C++ seguenti non sono disponibili quando si compila con l'opzione /osf :
- Campi bit in strutture e unioni.
- Commenti a riga singola delimitati con due caratteri di barra (//).
- Dichiarazioni esterne.
- Procedure con puntini di sospensione nell'elenco dei parametri.
- Digitare int.
- Type void * (ad eccezione dell'attributo context_handle ).
- I qualificatori di tipo, inclusi il modulo con il prefisso conforme a ANSI, contengono due caratteri di sottolineatura: __cdecl, cdecl, const, const, __export, esportazione, __far, lontano, __loadds, carichi, __near, vicino, __pascal, pascal, __stdcall, stdcall, __volatile e volatile.
- Qualsiasi avviso # pragma o #pragma commento.
- Serializzazione dei tipi.
- Tipo di dati __int3264 .
- Sintassi di trasferimento /protocol e ndr64.
midl /osf filename.idl
midl /osf /app_config filename.idl