Les messages d’erreur suivants sont générés lors de la compilation MIDL :
Code de retour
Description
MIDL2000
doit spécifier /c_ext pour les déclarateurs abstraits
Les déclarateurs abstraits représentent une extension Microsoft à RPC et ne sont pas définis dans le RPC DCE. Par conséquent, si votre fichier inclut des déclarateurs abstraits, vous ne pouvez pas compiler avec le commutateur /osf , ce qui applique une compatibilité DCE stricte. MIDL versions 3.0 et ultérieures utilisent le commutateur /c_ext comme valeur par défaut ; le commutateur /osf désactive le commutateur /c_ext . Pour plus d’informations sur les déclarateurs abstraits, consultez Le corps ACF.
MIDL2001
l’instanciation des données est illégale ; vous devez utiliser « extern » ou « static »
La déclaration et l’initialisation dans le fichier IDL ne sont pas compatibles avec le RPC DCE. Cette fonctionnalité est une extension Microsoft qui n’est pas disponible lorsque vous compilez en mode de compatibilité DCE (/osf).
MIDL2002
Dépassement de la pile du compilateur
Le compilateur a dépassé l’espace de pile pendant le traitement du fichier IDL. Ce problème peut se produire lorsque le compilateur traite une déclaration ou une expression complexe. Pour résoudre le problème, simplifiez la déclaration ou l’expression complexes.
MIDL2003
Redéfinition
Ce message d’erreur peut apparaître dans les circonstances suivantes : un type a été redéfini ; un prototype de procédure a été redéfini ; un membre d’une structure ou d’une union du même nom existe déjà; un paramètre du même nom existe déjà dans le prototype.
MIDL2004
La liaison [auto_handle] sera utilisée
Aucun type de handle n’a été défini comme type de handle par défaut. Le compilateur suppose qu’un handle automatique sera utilisé comme handle de liaison pour la procédure spécifiée.
MIDL2005
hors mémoire
Le compilateur a dépassé la mémoire pendant la compilation. Réduisez la taille ou la complexité du fichier IDL ou allouez plus de mémoire au processus.
MIDL2006
Définition récursive
Une structure ou une union a été définie de manière récursive. Cette erreur peut se produire lorsqu’une spécification de pointeur dans une définition de structure imbriquée est manquée.
MIDL2007
importer ignoré ; fichier déjà importé
L’importation d’un fichier IDL est une opération idempotente. Y compris plus d’une fois n’a aucun effet. Toutes mais la première opération d’importation est ignorée.
MIDL2008
Les énumérations éparses nécessitent /c_ext ou /ms_ext
L’attribution de valeurs à des constantes d’énumération n’est pas compatible avec le RPC DCE. Si vous souhaitez utiliser les extensions Microsoft à MIDL qui permettent d’attribuer des valeurs à des constantes d’énumération, vous ne pouvez pas compiler avec le commutateur /osf , ce qui applique une compatibilité DCE stricte. MIDL versions 3.0 et ultérieures utilisent les commutateurs /c_ext et /ms_ext comme valeur par défaut ; le commutateur /osf désactive ces commutateurs d’extension.
MIDL2009
symbole non défini
Un symbole non défini a été utilisé dans une expression. Cette erreur peut se produire lorsque vous utilisez une valeur énumérée non définie.
MIDL2010
type utilisé dans le fichier ACF non défini dans le fichier IDL
Un type non défini est utilisé.
MIDL2011
déclaration de type non résolue
Le type signalé dans le champ d’informations d’erreur supplémentaires n’a pas été défini ailleurs dans le fichier IDL.
MIDL2012
l’utilisation de constantes à caractère large nécessite /ms_ext ou /c_ext
Les constantes à caractères larges sont une extension Microsoft à DCE IDL. Pour utiliser le type de données wchar_t, vous ne pouvez pas compiler avec le commutateur /osf , qui remplace les commutateurs par défaut du compilateur MIDL /ms_ext et /c_ext.
MIDL2013
l’utilisation de chaînes de caractères larges nécessite /ms_ext ou /c_ext
Les constantes de chaîne à caractères larges sont une extension Microsoft à DCE IDL. Pour utiliser le type de données wchar_t, vous ne pouvez pas compiler avec le commutateur /osf , qui remplace les commutateurs par défaut du compilateur MIDL /ms_ext et /c_ext.
MIDL2014
redéfinition incohérente du type wchar_t
Le type wchar_t a été redéfini comme un type qui n’est pas équivalent à DOS *non signé.
MIDL2015
importlib introuvable
Le compilateur n’a pas pu trouver la bibliothèque de types spécifiée par la directive [ importlib]. Vérifiez que le chemin et le nom de la bibliothèque sont corrects.
MIDL2016
deux blocs de bibliothèque
Deux blocs de bibliothèque (même avec des noms différents) dans le même fichier source sont illégals. Combinez tous les éléments dans un seul bloc de bibliothèque.
MIDL2017
l’instruction dispinterface nécessite une définition pour IDispatch
Cette erreur se produit généralement lorsque les fichiers Stdole2.tlb ou Oaidl.idl ne sont pas importés.
MIDL2018
erreur d’accès à la bibliothèque de types
Le compilateur n’a pas pu trouver la bibliothèque de types spécifiée. Vérifiez que vous avez spécifié le chemin correctement.
MIDL2019
erreur d’accès aux informations de type
La bibliothèque de types importée est endommagée, non valide ou partiellement construite.
MIDL2020
erreur générant une bibliothèque de types
Impossible de générer la bibliothèque de types. Une cause possible de cette erreur consiste à spécifier un chemin d’accès au fichier IDL qui dépasse 126 caractères. Oleaut32.dll ne prend pas en charge les noms de chemin d’accès plus de 126 caractères.
MIDL2021
ID dupliqué
Les applications utilisent l’instruction ID dans les fichiers IDL pour spécifier un DISPID pour les fonctions membres. Les fonctions membres peuvent être des propriétés ou des méthodes d’interfaces ou de dispinterfaces. Cette erreur indique que le fichier IDL spécifie le même numéro d’identificateur pour deux méthodes ou propriétés.
MIDL2022
valeur illégale ou manquante pour l’attribut d’entrée
L’argument de l’attribut d’entrée peut être une chaîne qui spécifie un point d’entrée nommé ou un nombre ordinal qui définit le point d’entrée. Cet argument est manquant ou contient une valeur non valide.
MIDL2023
récupération d’erreur suppose que
Le compilateur MIDL a trouvé des caractères non autorisés dans le fichier IDL.
MIDL2024
récupération d’erreur ignorée
Le compilateur MIDL a trouvé des caractères non autorisés dans le fichier IDL. Il ignore les caractères illicites.
MIDL2025
erreur de syntaxe
Le compilateur a détecté une erreur de syntaxe à la ligne spécifiée.
MIDL2026
impossible de récupérer à partir d’erreurs de syntaxe antérieures ; abandon de la compilation
Le compilateur MIDL tente automatiquement de récupérer des erreurs de syntaxe en ajoutant ou en supprimant des éléments syntactiques. Ce message indique que, malgré ces tentatives de récupération, le compilateur a détecté trop d’erreurs. Corrigez la ou les erreurs spécifiées et recompilez.
MIDL2027
option de pragma inconnue
Le pragma C spécifié n’est pas pris en charge dans MIDL. Supprimez le pragma du fichier IDL.
MIDL2028
fonctionnalité non implémentée
La fonctionnalité MIDL, bien que partie de la définition de langage, n’est pas implémentée dans Microsoft RPC et n’est pas prise en charge par le compilateur MIDL. Par exemple, les fonctionnalités linguistiques suivantes ne sont pas implémentées : bitset, pipe et type de caractère international. La fonctionnalité de langue non implémentée apparaît dans le champ d’informations d’erreur supplémentaires du message d’erreur.
MIDL2029
type non implémenté
Le type de données spécifié, bien qu’un mot clé MIDL légal, n’est pas implémenté dans Microsoft RPC.
MIDL2030
non pointeur utilisé dans une opération de déréférencement
Un type de données qui n’est pas un pointeur a été associé aux opérations de pointeur. Vous ne pouvez pas accéder à l’objet via le pointeur non spécifié.
MIDL2031
l’expression a une division par zéro
L’expression constante contient la division par zéro.
MIDL2032
l’expression utilise des types incompatibles
Les côtés gauche et droit de l’opérateur dans une expression sont des types incompatibles.
MIDL2033
l’expression nonarray utilise l’opérateur d’index
L’expression utilise l’opération d’indexation de tableau sur un élément de données qui n’est pas du type de tableau.
MIDL2034
côté gauche de l’expression ne prend pas en compte struct/union/enum
L’opérateur de référence direct ou indirect « » ou « -> » a été appliqué à un objet de données qui n’est pas une structure, une union ou une énumération. Vous ne pouvez pas obtenir une référence directe ou indirecte à l’aide de l’objet spécifié.
MIDL2035
expression constante attendue
Une expression constante était attendue dans la syntaxe. Par exemple, les limites de tableau nécessitent une expression constante. Le compilateur émet ce message d’erreur lorsque la limite du tableau est définie avec une variable ou un symbole non défini.
MIDL2036
l’expression ne peut pas être évaluée au moment de la compilation
Le compilateur ne peut pas évaluer une expression au moment de la compilation.
MIDL2037
expression non implémentée
Une fonctionnalité prise en charge dans les versions précédentes du compilateur MIDL n’est pas prise en charge dans la version du compilateur fourni avec Microsoft RPC. Supprimez l’expression spécifiée.
MIDL2038
aucun attribut [pointer_default] spécifié, en supposant [unique] pour tous les pointeurs non attribués
Le compilateur MIDL offre trois cas par défaut différents pour les pointeurs qui n’ont pas d’attributs de pointeur. Les paramètres de fonction qui sont des pointeurs de niveau supérieur par défaut vers des pointeurs [ref] . Les pointeurs incorporés dans les structures et les pointeurs vers d’autres pointeurs (et non pointeurs de niveau supérieur) par défaut sur le type spécifié par l’attribut [pointer_default]. Lorsqu’aucun attribut [pointer_default] n’est fourni, ces pointeurs de niveau non-top sont par défaut des pointeurs uniques. Ce message d’erreur indique le dernier cas : aucun attribut [pointer_default] n’est fourni et il existe au moins un pointeur de niveau supérieur qui sera traité comme un pointeur unique. Pour plus d’informations, consultez Types de pointeurs par défaut.
MIDL2039
l’interface n’est pas le marshaling d’automatisation conforme
L’interface ne répond pas aux exigences d’une interface OLE Automation. Vérifiez que l’interface est dérivée d’IUnknown ou IDispatch.
MIDL2040
[out] seul le paramètre ne peut pas être un pointeur vers une structure ouverte
Un paramètre [out]uniquement a été utilisé comme pointeur vers une structure, appelée structure ouverte, dont la plage et la taille transmises sont déterminées au moment de l’exécution. Le stub du serveur ne sait pas combien d’espace allouer pour une structure ouverte. Utilisez un pointeur vers un pointeur vers la structure ouverte et assurez-vous que l’application serveur alloue suffisamment d’espace pour elle.
MIDL2041
[out] seul le paramètre ne peut pas être une chaîne non mise en valeur
Un tableau avec l’attribut de chaîne a été déclaré en tant que paramètre [out]uniquement sans spécification de taille. Le stub du serveur a besoin d’informations de taille pour allouer de la mémoire pour la chaîne. Vous pouvez supprimer l’attribut de chaîne et ajouter l’attribut [size_is] ou modifier le paramètre en paramètre [in, out].
MIDL2042
Le paramètre [out] n’est pas un pointeur
Tous les paramètres [out] doivent être des pointeurs, conformément à la convention d’appel par valeur du langage de programmation C. Le paramètre directionnel [out] indique que le serveur transmet une valeur au client. Avec la convention d’appel par valeur, le serveur peut transmettre des données au client uniquement si l’argument de fonction est un pointeur.
MIDL2043
la structure ouverte ne peut pas être un paramètre
Une structure ouverte contient un tableau conforme comme dernier élément. Une structure ou une union est tronquée lorsque le dernier élément de cette structure ou union est un tableau conforme.
MIDL2044
[out] handle de contexte/handle générique doit être spécifié en tant que pointeur vers ce type de handle
Un paramètre de handle de contexte ou de handle défini par l’utilisateur avec l’attribut directionnel [out] doit être un pointeur vers un pointeur.
MIDL2045
le handle de contexte ne doit pas dériver d’un type qui a l’attribut [transmit_as]
Les handles de contexte doivent être transmis en tant que types de handle de contexte. Ils ne peuvent pas être transmis en tant qu’autres types et ne peuvent pas dériver de [transmit_is], [represent_as], [wire_marshal], ou [user_marshal].
MIDL2046
impossible de spécifier un nombre variable d’arguments à une procédure distante
Les appels de procédure distante qui spécifient un nombre variable d’arguments au moment de la compilation ne sont pas compatibles avec la définition RPC DCE. Vous ne pouvez pas utiliser un nombre variable d’arguments dans Microsoft RPC.
MIDL2047
Le paramètre nommé ne peut pas être « void »
Un paramètre avec le type de base void est spécifié avec un nom.
MIDL2048
le paramètre dérive de « coclasse » ou de « module »
La coclasse spécifie un objet de niveau supérieur qui contient des interfaces et des dispinterfaces. Il ne peut pas être passé en tant que paramètre.
MIDL2049
seul le premier paramètre peut être un handle de liaison ; vous devez spécifier le commutateur /ms_ext
DCE RPC autorise uniquement le premier paramètre à être un handle de liaison. La compilation avec le commutateur /osf désactive le commutateur /ms_ext par défaut qui prend en charge plusieurs paramètres de handle et de gérer les paramètres en dehors de la position la plus gauche.
MIDL2050
impossible d’utiliser [comm_status] sur un paramètre et un type de retour
La procédure et l’un de ses paramètres ont l’attribut [comm_status]. L’attribut [comm_status] spécifie qu’un seul objet de données à la fois peut être de type error_status_t.
MIDL2051
L’attribut [local] sur une procédure nécessite /ms_ext
L’attribut [local] est une extension Microsoft à DCE IDL. Pour utiliser cet attribut sur une fonction, vous ne pouvez pas compiler avec le commutateur /osf . Le commutateur /osf remplace les commutateurs par défaut du compilateur MIDL /ms_ext et /c_ext.
MIDL2052
les attributs de propriété peuvent uniquement être utilisés avec des procédures
Utilisation incorrecte d’un attribut [propput], [propput] ou [propputref]. Vérifiez que vous avez orthographié correctement le nom de la fonction de la propriété et que la propriété et la fonction ont le même nom.
MIDL2053
une procédure peut ne pas avoir plusieurs attributs de propriété
Au maximum, un seul des attributs [propput], [propput] ou [propputref] peut être spécifié pour une fonction.
MIDL2054
la procédure a une combinaison illégale d’attributs d’opération
Certains attributs ne peuvent pas être utilisés en connexion avec d’autres attributs. Vérifiez la référence du langage MIDL pour connaître les exigences et la syntaxe exactes des attributs utilisés dans cette procédure.
MIDL2055
le champ dérivant d’un tableau conforme doit être le dernier membre de la structure
La structure contient un tableau conforme qui n’est pas le dernier élément de la structure. Le tableau conforme doit apparaître comme dernier élément de structure.
MIDL2056
doublon [case] étiquette
Une étiquette de cas en double a été spécifiée. L’étiquette dupliquée s’affiche.
MIDL2057
aucun cas [par défaut] spécifié pour l’union discriminatoire
Une union discriminatoire a été spécifiée sans cas par défaut.
MIDL2058
l’expression d’attribut ne peut pas être résolue
L’expression associée à l’attribut ne peut pas être résolue. Cette erreur se produit généralement lorsqu’une variable qui apparaît dans l’expression n’est pas définie. Par exemple, l’erreur peut se produire lorsque les variables ne sont pas définies et qu’elles sont utilisées par l’attribut [size_is].
MIDL2059
l’expression d’attribut doit être de type intégral, aucune prise en charge des expressions 64 bits
La variable ou l’expression d’attribut spécifiée doit être un type intégral. Cette erreur se produit lorsque le type d’expression d’attribut ne se résout pas en entier.
MIDL2060
[byte_count] nécessite /ms_ext
L’attribut [byte_count] est une extension Microsoft à DCE IDL. Pour utiliser cet attribut, vous ne pouvez pas compiler avec le commutateur /osf , qui remplace les commutateurs par défaut du compilateur MIDL /ms_ext et /c_ext.
MIDL2061
[byte_count] ne peut être appliqué qu’aux paramètres de type pointeur
L’attribut [byte_count] ne peut être appliqué qu’aux paramètres [out] et tous les paramètres [out] doivent être des types de pointeurs.
MIDL2062
[byte_count] ne peut pas être spécifié sur un pointeur vers un tableau ou une structure conforme
L’attribut [byte_count] ne peut pas être appliqué à un tableau ou une structure conforme.
MIDL2063
paramètre spécifiant le nombre d’octets n’est pas [in] uniquement ou le paramètre de nombre d’octets n’est pas [out] uniquement
La valeur associée au [byte_count] doit être transmise du client au serveur; il doit s’agir d’un paramètre [in] . Le paramètre [byte_count] n’a pas besoin d’être un paramètre [in, out].
MIDL2064
paramètre spécifiant le nombre d’octets n’est pas un type intégral
La valeur associée au nombre d’octets doit être l’int de type entier, petit, court ou long.
MIDL2065
[byte_count] ne peut pas être spécifié sur un paramètre avec des attributs de taille
L’attribut [byte_count] ne peut pas être utilisé avec d’autres attributs de taille tels que [size_is] ou [length_is].
MIDL2066
L’expression [case] n’est pas constante
L’expression spécifiée pour l’étiquette de cas n’est pas une constante.
MIDL2067
L’expression [case] n’est pas de type intégral
L’expression spécifiée pour l’étiquette de cas n’est pas un type entier.
MIDL2068
spécification [context_handle] sur un type autre que void * nécessite /ms_ext
Pour la compatibilité DCE-RPC, le handle de contexte doit être un pointeur de type void *. Si vous souhaitez que les handles de contexte soient associés à des types autres que void *, n’utilisez pas le commutateur de compilateur MIDL /osf, qui remplace le commutateur par défaut du compilateur MIDL /ms_ext.
MIDL2069
ne peut pas spécifier plusieurs paramètres avec chacun des comm_status/fault_status
Une procédure ne peut avoir qu’un seul paramètre avec l’attribut [comm_status]. Il peut avoir au plus un paramètre avec l’attribut [fault_status].
MIDL2070
comm_status/fault_status paramètre doit être un paramètre de pointeur [out] uniquement
Les types de code d’erreur [comm_status] et [fault_status] sont transmis du serveur au client et doivent donc être spécifiés en tant que paramètre [out]. En raison des contraintes du langage de programmation C, tous les paramètres [out] doivent être des pointeurs.
MIDL2071
Erreur de syntaxe de point de terminaison
La syntaxe du point de terminaison est incorrecte.
MIDL2072
Attribut inapplicable
L’attribut spécifié ne peut pas être appliqué dans cette construction. Par exemple, l’attribut de chaîne s’applique aux tableaux de caractères ou pointeurs de caractères et ne peut pas être appliqué à une structure composée de deux entiers courts :
typedef [string] struct moo
{
short x;
short y;
};
MIDL2073
[allocation] nécessite /ms_ext
L’attribut d’allocation représente une extension Microsoft qui n’est pas définie dans le cadre du RPC DCE. Pour utiliser cet attribut, vous ne pouvez pas compiler avec le commutateur /osf , qui remplace le commutateur par défaut du compilateur MIDL /ms_ext
MIDL2074
mode [allouer] non valide
Un mode non valide pour la construction d’attribut [allocation] a été spécifié. Les quatre modes valides sont single_node, all_nodes, on_null et toujours.
MIDL2075
Les attributs de longueur ne peuvent pas être appliqués avec l’attribut de chaîne
Lorsque l’attribut de chaîne est utilisé, les fichiers stub générés appellent la fonction strlen pour déterminer la longueur de chaîne. N’utilisez pas l’attribut de longueur et l’attribut de chaîne pour la même variable.
MIDL2076
[last_is] et [length_is] ne peuvent pas être spécifiés en même temps
[last_is] et [length_is] ont été spécifiés pour le même tableau. Ces attributs sont liés comme suit : length = last first + 1. Étant donné que chaque valeur peut être dérivée de l’autre, ne spécifiez pas les deux.
MIDL2077
[max_is] et [size_is] ne peuvent pas être spécifiés en même temps
Les deux [ max_is] et [ size_is] ont été spécifiés pour le même tableau. Ces attributs sont liés comme suit : max = size + 1. Étant donné que chaque valeur peut être dérivée de l’autre, ne spécifiez pas les deux.
MIDL2078
aucun attribut [switch_is] spécifié à l’utilisation de l’union
Aucune discrimination n’a été spécifiée pour l’union. L’attribut [switch_is] indique le discriminant utilisé pour sélectionner parmi les champs d’union.
MIDL2079
no [uuid] spécifié
Aucun UUID n’a été spécifié pour l’interface.
MIDL2080
[uuid] ignoré sur l’interface [local]
L’utilisation de l’attribut [local] sur une interface objet entraîne l’ignorer de l’attribut [uuid] du compilateur MIDL. Vous ne pouvez pas utiliser les deux attributs sur une interface RPC.
MIDL2081
incompatibilité de type entre les expressions d’attribut de longueur et de taille
Les expressions d’attribut de longueur et de taille doivent être des mêmes types. Par exemple, cet avertissement est émis lorsque la variable d’attribut de l’expression [size_is] est de type long et que la variable d’attribut pour l’expression [length_is] est de type long.
MIDL2082
L’attribut [string] doit être spécifié « byte », « char » ou « wchar_t » tableau ou pointeur
Un attribut de chaîne ne peut pas être appliqué à un pointeur ou un tableau dont le type de base n’est pas un octet, un char ou un struct dans lequel les membres sont tous les octets ou le type de caractères .
MIDL2083
incompatibilité entre le type de l’expression [switch_is] et le type de commutateur de l’union
Si l’union [switch_type] n’est pas spécifiée, le type de commutateur est le même type que le champ [switch_is].
MIDL2084
[transmit_as] ne doit pas être appliqué à un type qui dérive d’un handle de contexte
Les handles de contexte ne peuvent pas être transmis comme d’autres types.
MIDL2085
[transmit_as] doit spécifier un type transmissible
Le type [transmit_as] spécifié dérive d’un type qui ne peut pas être transmis par Microsoft RPC, tel que void, void *ou int. Utilisez un type de base RPC défini ; dans le cas d’int, ajoutez des spécificateurs de taille comme petits, courts ou longs pour qualifier l’int.
MIDL2086
le type transmis pour [transmit_as] et [represent_as] ne doit pas être un pointeur ou dériver d’un pointeur
Le type transmis ne peut pas être un pointeur ou dériver d’un pointeur.
MIDL2087
le type présenté pour [transmit_as] et [represent_as] ne doit pas dériver d’un tableau conforme/variable, de son équivalent pointeur ou d’une structure conforme/variable
Le type auquel [transmit_as] a été appliqué ne peut pas dériver d’un tableau ou d’une structure conforme (tableau ou structure dont la taille est déterminée au moment de l’exécution).
MIDL2088
Le format [uuid] est incorrect
Le format UUID n’est pas conforme à la spécification. L’UUID doit être une chaîne qui se compose de cinq séquences de chiffres hexadécimaux de longueur 8, 4, 4, 4 et 12 chiffres. « 12345678-1234-ABCD-EF01-28A49C28F17D » est un UUID valide. Utilisez la fonction UuidCreate ou un utilitaire pour générer un UUID valide.
MIDL2089
uuid n’est pas un nombre hexadécimal
L’UUID spécifié pour l’interface contient des caractères non valides dans une représentation de nombre hexadécimal. Les caractères 0 à 9 et A à F sont valides dans une représentation hexadécimale.
MIDL2090
les paramètres facultatifs doivent venir après les paramètres requis
Pour obtenir une description de l’ordre des listes de paramètres, consultez [facultatif] dans la référence du langage MIDL.
MIDL2091
[dllname] obligatoire lorsque [entrée] est utilisé
Si vous spécifiez un point d’entrée dans une DLL, vous devez également spécifier le nom de cette DLL à l’aide de l’attribut [dllname].
MIDL2092
[bindable] n’est pas valide sans [propget], [propput], ou [propputref]
L’attribut [bindable] est valide uniquement sur une propriété. Vous devez donc également spécifier l’une des fonctions d’accès à la propriété ou de paramètre de propriété.
MIDL2093
les procédures avec [propput] ou [propputref] doivent avoir au moins un paramètre
Une procédure [propput] ou [ propputref] doit avoir au moins un paramètre [in] avec la propriété à définir ; une procédure [propget] doit avoir au moins un paramètre [out, retval] pour recevoir la propriété ou la référence.
MIDL2094
L’attribut [id] est requis
Cette fonction membre, en raison de la syntaxe dispinterface utilisée, nécessite un DISPID, que vous spécifiez à l’aide de l’attribut [ id] . Lorsque vous spécifiez une dispinterface à l’aide de propriétés et de méthodes, vous devez spécifier un DISPID pour chaque propriété et méthode.
MIDL2095
Le nom de l’interface spécifié dans l’ACF ne correspond pas à celui spécifié dans le fichier IDL
En mode compilateur actuel, le nom qui suit le mot clé d’interface dans l’ACF doit être identique au nom qui suit le mot clé d’interface dans le fichier IDL. Les noms d’interface dans les fichiers IDL et ACF peuvent être différents lorsque vous compilez avec le commutateur du compilateur MIDL /acf.
MIDL2096
attribut dupliqué
Des attributs en double ou en conflit ont été spécifiés. Cette erreur se produit souvent lorsque deux attributs sont mutuellement exclusifs. Par exemple, les attributs [code] et [nocode] ne peuvent pas être utilisés en même temps.
MIDL2097
paramètre avec [comm_status] ou [fault_status] attribut doit être un pointeur vers le type error_status_t
Lorsque [fault_status] ou [comm_status] est utilisé comme attribut de paramètre, le paramètre doit être un paramètre [out] de type error_status_t. Si une erreur de serveur se produit, le paramètre est défini sur le code d’erreur. Lorsque l’appel distant est correctement terminé, la procédure définit la valeur.
MIDL2098
une procédure [locale] ne peut pas être spécifiée dans le fichier ACF
Une procédure locale a été spécifiée dans l’ACF. La procédure locale ne peut être spécifiée que dans le fichier IDL.
MIDL2099
le type spécifié n’est pas défini en tant que handle
Le type spécifié dans l’attribut [implicit_handle] n’est pas défini comme type de handle. Modifiez la définition de type ou le nom de type spécifié par l’attribut.
MIDL2100
procédure non définie
Un attribut a été appliqué à une procédure dans l’ACF, et cette procédure n’est pas définie dans le fichier IDL.
MIDL2101
ce paramètre n’existe pas dans le fichier IDL
Un paramètre spécifié dans l’ACF n’existe pas dans la définition dans le fichier IDL. Tous les paramètres, fonctions et définitions de type qui apparaissent dans l’ACF doivent correspondre aux paramètres, fonctions et types précédemment définis dans le fichier IDL.
MIDL2102
Cette construction liée aux tableaux n’est pas prise en charge
MIDL prend actuellement en charge l’expression des limites supérieure et inférieure d’un tableau sous la forme Array[Lower .. Majuscule] uniquement lorsque la constante qui spécifie la limite inférieure du tableau se résout à la valeur zéro.
MIDL2103
spécification liée au tableau est illégale
La spécification utilisateur des limites de tableau pour le tableau de taille fixe est illégale. Par exemple :
typedef short Array[-1]
MIDL2104
pointeur vers un tableau conforme ou un tableau qui contient un tableau conforme n’est pas pris en charge
Utilisation de tableau conforme illégale. Pour connaître les règles régissant les tableaux conformes, consultez Tableaux et RPC.
MIDL2105
pointee/tableau ne dérive aucune taille
Un tableau conforme a été spécifié sans spécification de taille. Vous pouvez spécifier la taille avec l’attribut [max_is] ou [size_is].
MIDL2106
seuls les tableaux fixes et SAFEARRAY sont légaux dans une bibliothèque de types
Vous avez utilisé un type de tableau à l’intérieur d’une instruction de bibliothèque qui ne peut pas être utilisé dans une bibliothèque de types.
MIDL2107
SAFEARRAYs n’est légal qu’à l’intérieur d’un bloc de bibliothèque
Le compilateur MIDL ne reconnaît pas un SAFEARRAY comme type de données valide, sauf lors de la génération d’une bibliothèque de types.
MIDL2108
constante de caractère mal formée
Le caractère de fin de ligne n’est pas autorisé dans les constantes de caractères.
MIDL2109
fin du fichier trouvé dans le commentaire
Le caractère de fin de fichier a été rencontré dans un commentaire.
MIDL2110
fin du fichier trouvé dans la chaîne
Le caractère de fin de fichier a été rencontré dans une chaîne.
MIDL2111
La longueur de l’identificateur dépasse 31 caractères
Les identificateurs sont limités à 31 caractères alphanumériques. Les noms d’identificateurs de plus de 31 caractères sont tronqués.
MIDL2112
fin de ligne trouvée dans la chaîne
Le caractère de fin de ligne a été rencontré dans la chaîne. Vérifiez que vous avez inclus le caractère de guillemet double qui termine la chaîne.
MIDL2113
la constante de chaîne dépasse la limite de 255 caractères
La chaîne a dépassé la longueur maximale autorisée de 255 caractères.
MIDL2114
l’identificateur dépasse la limite de 255 caractères et a été tronqué
L’identificateur a dépassé la longueur maximale autorisée de 255 caractères. Les caractères excédentaires de l’identificateur sont tronqués.
MIDL2115
constante trop grande
La constante est trop grande pour être représentée en interne.
MIDL2116
erreur d’analyse numérique
Le compilateur n’a pas pu analyser l’identificateur numérique.
MIDL2117
erreur dans l’ouverture du fichier
Le système d’exploitation a signalé une erreur lors de la tentative d’ouverture d’un fichier de sortie. Cette erreur peut être due à un nom trop long pour le système de fichiers ou par un nom de fichier en double.
MIDL2118
liaison d’erreur à la fonction
MIDL2119
erreur d’initialisation d’OLE
MIDL2120
erreur de chargement de la bibliothèque
MIDL2121
[out] seul le paramètre ne doit pas dériver d’un pointeur/tableau de niveau supérieur [unique] ou [ptr]
Un pointeur unique ne peut pas être un paramètre [out]uniquement. Par définition, un pointeur unique peut passer de NULL à non NULL. Aucune information sur le paramètre [out]uniquement est passée du client au serveur.
MIDL2122
l’attribut n’est pas applicable à cette union non rpcable
Seuls les attributs [switch_is] et [switch_type] s’appliquent à une union transmise dans le cadre d’un appel de procédure distante.
MIDL2123
expression utilisée pour un attribut de taille ne doit pas dériver d’un paramètre [out]uniquement
La valeur d’un paramètre [out]uniquement n’est pas transmise au serveur et ne peut pas être utilisée pour déterminer la longueur ou la taille du paramètre [in].
MIDL2124
expression utilisée pour un attribut de longueur pour un paramètre [in] ne peut pas dériver d’un paramètre [out]only
La valeur d’un paramètre [out]uniquement n’est pas transmise au serveur et ne peut pas être utilisée pour déterminer la longueur ou la taille du paramètre [in].
MIDL2125
utilisation des besoins « int » /c_ext
MIDL est un langage fortement typé. Tous les paramètres transmis sur le réseau doivent être dérivés d’un des types de base MIDL. L’int de type n’est pas défini dans le cadre de MIDL. Les données transmises doivent inclure un spécificateur de taille : petit, court ou long. Les données qui ne sont pas transmises sur le réseau peuvent être incluses dans une interface ; utilisez le commutateur /c_ext .
MIDL2126
Le champ struct/union ne doit pas être « void »
Les champs d’une structure ou d’une union doivent être déclarés comme étant d’un type de base spécifique pris en charge par MIDL ou un type dérivé des types de base. Les types Void ne sont pas autorisés dans les opérations distantes.
MIDL2127
l’élément de tableau ne doit pas être void
Un élément de tableau ne peut pas être void.
MIDL2128
l’utilisation de qualificateurs de type et/ou de modificateurs a besoin de /c_ext
Les modificateurs de type tels que _cdecl et _far peuvent être compilés uniquement si vous spécifiez le commutateur /c_ext .
MIDL2129
Le champ struct/union ne doit pas dériver d’une fonction
Les champs d’une structure ou d’une union doivent être des types de base MIDL ou des types dérivés de ces types de base. Les fonctions ne sont pas légales dans les domaines de la structure ou de l’union.
MIDL2130
l’élément array ne doit pas être une fonction
Un élément de tableau ne peut pas être une fonction.
MIDL2131
le paramètre ne doit pas être une fonction
Le paramètre d’une procédure distante doit être une variable d’un type spécifié. Une fonction ne peut pas être un paramètre de la procédure distante.
MIDL2132
struct/union avec des champs bit a besoin de /c_ext
Vous devez spécifier le commutateur du compilateur MIDL /c_ext pour autoriser les champs de bits dans les structures qui ne sont pas transmises dans un appel de procédure distante.
MIDL2133
spécification de champ bit sur un type autre que « int » est une extension non compatible ANSI
La spécification du langage de programmation ANSI C n’autorise pas l’application de champs de bits aux types non-integer.
MIDL2134
La spécification de champ bit ne peut être appliquée qu’aux types simples et intégraux
La spécification du langage de programmation ANSI C n’autorise pas l’application de champs de bits aux types non-integer.
MIDL2135
Le champ struct/union ne doit pas dériver de handle_t ou d’un handle de contexte
Les handles de contexte ne peuvent pas être transmis dans le cadre d’une autre structure. Elles doivent être transmises en tant que handles de contexte.
MIDL2136
l’élément de tableau ne doit pas dériver de handle_t ou d’un handle de contexte
Les handles de contexte ne peuvent pas être transmis dans le cadre d’un tableau.
MIDL2137
cette spécification des besoins de l’union /c_ext
Une union qui apparaît dans la définition de l’interface doit être associée au discriminant ou déclaré comme local. Les données qui ne sont pas transmises sur le réseau peuvent être déclarées implicitement en tant que locales lorsque vous utilisez le commutateur /c_ext , qui est la valeur par défaut MIDL. Vous ne pouvez pas compiler cet IDL avec le commutateur /osf .
MIDL2138
le paramètre dérivant d’un « int » doit avoir le spécificateur de taille « petit », « short » ou « long » avec l'« int »
L’int de type n’est qu’un type MIDL valide sur les plateformes 32 bits, sur les systèmes 16 bits int doit être accompagné d’une spécification de taille. Utilisez l’un des spécificateurs de taille petits, courts ou longs.
MIDL2139
type du paramètre ne peut pas dériver de void ou void*
MIDL est un langage fortement typé. Tous les paramètres transmis sur le réseau doivent être dérivés d’un des types de base MIDL. MIDL ne prend pas en charge void comme type de base. Vous devez modifier la déclaration en type MIDL valide.
MIDL2140
le paramètre dérivant d’un struct/union contenant des champs de bits n’est pas pris en charge
Les champs de bits ne sont pas définis comme un type de données valide par RPC DCE.
MIDL2141
l’utilisation d’un paramètre dérivé d’un type contenant des modificateurs de type/qualificateurs de type a besoin de /c_ext
L’utilisation de mots clés tels que loin, près, const et volatile dans le fichier IDL est une extension Microsoft à DCE RPC. Ces mots clés ne sont pas disponibles lorsque vous compilez avec le commutateur /osf , ce qui désactive le commutateur d’extension /c_ext par défaut.
MIDL2142
le paramètre ne doit pas dériver d’un pointeur vers une fonction
Les bibliothèques d’exécution RPC transmettent un pointeur et ses données associées entre le client et le serveur. Les pointeurs vers les fonctions ne peuvent pas être transmis en tant que paramètres, car la fonction ne peut pas être transmise sur le réseau.
MIDL2143
le paramètre ne doit pas dériver d’une union non compatible
L’union doit être associée à un discriminant. Utilisez les attributs [switch_is] et [switch_type].
MIDL2144
le type de retour dérive d’un « int ». Vous devez utiliser des spécificateurs de taille avec l'« int »
Sur les systèmes 16 bits, le type int n’est pas un type MIDL valide, sauf s’il est accompagné d’une spécification de taille. Utilisez l’un des spécificateurs de taille petits, courts ou longs.
MIDL2145
le type de retour ne doit pas dériver d’un pointeur void
MIDL est un langage fortement typé. Tous les paramètres transmis sur le réseau doivent être dérivés d’un des types de base MIDL. Les types Void ne sont pas définis dans le cadre de MIDL. Vous devez modifier la déclaration en type MIDL valide.
MIDL2146
le type de retour ne doit pas dériver d’une structure/union contenant des champs de bits
Les champs de bits ne sont pas définis comme un type de données valide par RPC DCE.
MIDL2147
le type de retour ne doit pas dériver d’une union non compatible avec un pc
L’union doit être associée à un discriminant. Utilisez les attributs [switch_is] et [switch_type].
MIDL2148
le type de retour ne doit pas dériver d’un pointeur vers une fonction
Les bibliothèques d’exécution RPC transmettent un pointeur et ses données associées entre le client et le serveur. Les pointeurs vers des fonctions ne peuvent pas être transmis en tant que paramètres, car RPC ne définit pas de méthode pour transmettre la fonction associée sur le réseau.
MIDL2149
les initialiseurs composés ne sont pas pris en charge
DCE RPC prend uniquement en charge l’initialisation simple. La structure ou le tableau ne peut pas être initialisé dans le fichier IDL.
MIDL2150
Les attributs ACF du fichier IDL ont besoin du commutateur /app_config
Une extension Microsoft vous permet de spécifier des attributs ACF dans le fichier IDL. Utilisez le commutateur /app_config pour activer cette extension.
MIDL2151
Le commentaire monoligne a besoin de /ms_ext ou /c_ext
Les commentaires à ligne unique qui utilisent deux caractères obliques (//) représentent une extension Microsoft à DCE RPC. Vous ne pouvez pas utiliser de commentaires à ligne unique si vous compilez avec le commutateur /osf .
MIDL2152
Le format [version] est incorrect
Le numéro de version de l’interface dans l’en-tête d’interface doit être spécifié dans le format majeur. mineur, où chaque nombre peut passer de 0 à 65535.
MIDL2153
« signé » a besoin de /ms_ext ou /c_ext
L’utilisation du mot clé signé est une extension Microsoft à DCE RPC. Vous ne pouvez pas utiliser le commutateur /osf si vous souhaitez utiliser cette fonctionnalité.
MIDL2154
incompatibilité dans le type d’affectation
Le type de la variable ne correspond pas au type de la valeur affectée à la variable.
MIDL2155
la déclaration doit être du formulaire : type const<>\