Commutateur /osf
Le commutateur /osf force une compatibilité stricte avec OSF DCE.
midl /osf
Options de commutateur
Ce commutateur n’a aucun paramètre.
Notes
Utilisez ce commutateur si votre application nécessite une compatibilité stricte avec OSF DCE pour des raisons de portabilité.
En mode /osf , le package RpcSs est automatiquement activé lorsque vous utilisez des pointeurs complets, que les arguments nécessitent une allocation de mémoire ou que vous utilisez l’attribut enable_allocate . Cela signifie que vous n’avez pas besoin de fournir les fonctions midl_user_allocate et midl_user_free dans votre application cliente et serveur.
Les fonctionnalités étendues microsoft suivantes ne sont pas disponibles lorsque vous compilez avec le commutateur /osf :
- Déclarateurs abstraits (paramètres sans nom) dans le fichier IDL.
- Définitions d’interface pour les objets COM.
- Noms d’interface avec plus de 17 caractères.
- Attributs MIDL uniquement, tels que wire_marshal, user_marshal et les extensions typelib (ODL).
- Utilisation de mots clés ACF dans un fichier IDL (option MIDL /app_config ).
- Fonctions de rappel statiques sur le client.
- Attribut asynchrone .
- cpp_quote et #pragma midl_echo.
- wchar_t des types à caractères larges, des constantes et des chaînes.
- initialisation de l’énumération (énumérateurs éparses).
- spécification de taille out-only.
- Pointeurs de taille mixte et tableaux dimensionnés.
- Expressions utilisées pour les spécificateurs de taille et de discriminateur.
- Les paramètres de handle explicites dans n’importe quelle position dans la liste d’arguments. En mode /osf , le compilateur MIDL recherche un handle de liaison explicite comme premier paramètre. Lorsque le premier paramètre n’est pas un handle de liaison et qu’un ou plusieurs handles de contexte sont spécifiés, le handle de contexte le plus à gauche est utilisé comme handle de liaison. Lorsque le premier paramètre n’est pas un handle et qu’il n’existe pas de handles de contexte, la procédure utilise une liaison implicite à l’aide de l’attribut ACF implicit_handle ou auto_handle.
- Héritage de type d’attribut de pointeur. OSF DCE n’autorise pas les pointeurs non distribués. Par conséquent, en mode /osf , chaque fichier IDL doit définir des attributs pour ses pointeurs. Si un pointeur n’a pas d’attribut explicite, le fichier IDL doit avoir une spécification pointer_default pour définir le type de pointeur.
- Plusieurs interfaces dans un fichier IDL.
- Définitions en dehors du bloc d’interface.
- Qualificateurs de type tels que far et stdcall.
- Omettre les attributs directionnels.
Les extensions de langage C/C++ suivantes ne sont pas disponibles lorsque vous compilez avec le commutateur /osf :
- Champs de bits dans les structures et les unions.
- Commentaires d’une seule ligne délimités par deux caractères de barre oblique (//).
- Déclarations externes.
- Procédures avec des points de suspension dans la liste des paramètres.
- Tapez int.
- Tapez void * (sauf avec l’attribut context_handle ).
- Les qualificateurs de type, y compris le formulaire avec le préfixe conforme à ANSI, contiennent deux caractères de soulignement : __cdecl, cdecl, const, const, __export, export, __far, far, __loadds, loadds, __near, near, __pascal, pascal, __stdcall, stdcall, __volatile et volatile.
- Tout avertissement # pragma ou commentaire #pragma .
- Sérialisation de type.
- Type de données __int3264 .
- Le commutateur /protocol et la syntaxe de transfert ndr64.
Exemples
midl /osf filename.idl
midl /osf /app_config filename.idl
Voir aussi