Commutateur /char
Le commutateur /char permet de s’assurer que le compilateur MIDL et le compilateur C fonctionnent ensemble correctement pour tous les types char et petits .
midl /char { signed | unsigned | ascii7 }
Options de basculement
-
Signé
-
Spécifie que le type de compilateur C par défaut pour char est signé. Toutes les occurrences de char non accompagnées d’une spécification de signe sont générées en tant que caractères non signés.
-
Unsigned
-
Spécifie que le type de compilateur C par défaut pour char n’est pas signé. Toutes les utilisations de small qui ne sont pas accompagnées d’une spécification de signe sont générées en tant que petites signées.
-
ascii7
-
Spécifie que toutes les valeurs char doivent être passées dans les fichiers générés sans signe spécifique mot clé. Toutes les utilisations de small non accompagnées d’une spécification de signe sont générées en tant que petites.
Notes
Par définition, le caractère MIDL n’est pas signé. « Small » est défini en termes de char (#define small char), et MIDL small est signé.
Le commutateur /char indique au compilateur MIDL de spécifier des déclarations signées ou non explicites dans les fichiers générés lorsque la déclaration de signe du compilateur C est en conflit avec la valeur par défaut MIDL pour ce type.
N’oubliez pas que le compilateur MIDL génère les stubs en tant que code source C, que vous devez compiler dans le cadre de vos programmes client et serveur. Certains compilateurs utilisent un caractère signé partout où les données char sont spécifiées dans le code source. Le code source stub généré par le compilateur MIDL traite toutes les données char comme du caractère non signé. Si le compilateur MIDL a simplement généré toutes les données char dans le fichier IDL en tant que données char dans les stubs, les compilateurs qui utilisent un char signé pour les données char provoquent un conflit dans le code source stub.
L’objectif du commutateur de ligne de commande /char est de résoudre ces conflits potentiels. Il conserve toutes les données spécifiées en tant que char dans le fichier IDL en tant que char non signé dans le code source stub. Il gère également les données de petite taille comme signées.
Le tableau suivant récapitule les types générés.
midl /char, option | Type de char généré | Petit type généré |
---|---|---|
midl /char signé | unsigned char | small |
midl /char non signé | char | signé petit |
midl /char ascii7 | char | small |
L’option signée /char indique que le char du compilateur C et les petits types sont signés. Pour correspondre à la valeur par défaut de MIDL pour char, le compilateur MIDL doit convertir toutes les utilisations de char non accompagnées d’une spécification de signe en char non signé. Le type petit n’est pas modifié, car cette valeur par défaut du compilateur C correspond à la valeur par défaut MIDL pour small.
L’option /char unsigned indique que le type de char du compilateur C n’est pas signé. Le compilateur MIDL convertit toutes les utilisations de small non accompagnées d’une spécification de signe en petitesignée.
L’option ascii7 indique qu’aucune spécification de signe explicite n’est ajoutée aux types char . Le type small est généré en tant que petit.
Pour éviter toute confusion, vous devez utiliser des spécifications de signe explicites pour les types char et small chaque fois que possible dans le fichier IDL. Notez que l’utilisation de types char explicitement signés dans votre fichier IDL n’est pas prise en charge par DCE IDL. Par conséquent, cette fonctionnalité n’est pas disponible lorsque vous compilez avec le commutateur MIDL /osf .
Pour plus d’informations sur /char, consultez small.
Exemples
midl /char signé filename.idl
midl /char unsigned filename.idl
midl /char ascii7 filename.idl
Voir aussi