Commutateur /cpp_cmd

Le commutateur /cpp_cmd spécifie le préprocesseur que le compilateur MIDL utilise pour prétraiter les fichiers d’entrée.

midl /cpp_cmd "C_preprocessor_binary"

Options de basculement

C_preprocessor_binary

Spécifie la commande qui appelle le préprocesseur. Cette commande permet aux développeurs de remplacer le préprocesseur par défaut. Par défaut, MIDL appelle le compilateur Microsoft C/C++ à partir de l’environnement de génération de la machine de génération.

Notes

L’argument C_preprocessor_binary au commutateur peut spécifier le chemin d’accès complet ; le suffixe exe et les guillemets sont facultatifs. En règle générale, les développeurs utilisent le commutateur pour choisir une version particulière du préprocesseur Microsoft C/C++ ou une version équivalente dans l’environnement de build. Dans ce cas, il n’est pas nécessaire d’utiliser le commutateur /cpp_opt avec /cpp_cmd.

Lors de l’utilisation d’un préprocesseur non-Microsoft, en particulier lorsque le préprocesseur spécifié ne dirige pas sa sortie vers stdout, le commutateur du compilateur C qui redirige la sortie vers stdout dans le cadre du commutateur / cpp_opt du compilateur MIDL doit être spécifié. Pour plus d’informations, consultez C-Preprocessor Requirements for MIDL

Le préprocesseur est appelé par une chaîne de commande formée à partir des informations fournies au compilateur MIDL par les commutateurs /cpp_cmd, /cpp_opt, /D, /I et /U . Le tableau suivant résume la façon dont la chaîne de commande est construite pour chaque combinaison de commutateurs /cpp_cmd et /cpp_opt .

Lorsque le commutateur /cpp_cmd n’est pas spécifié, le compilateur MIDL appelle le compilateur Microsoft C/C++. MIDL utilise un binaire Cl.exe trouvé dans l’environnement de build.

Lorsque le commutateur /cpp_opt n’est pas présent, le compilateur MIDL concatène la chaîne spécifiée par le commutateur /cpp_cmd avec les informations spécifiées par les options MIDL /I, /D et /U . La chaîne /E est également concaténée avec la chaîne d’appel du compilateur C pour indiquer que le compilateur C/C++ doit effectuer le prétraitement uniquement. Le commutateur /nologo est ajouté pour supprimer la bannière du compilateur C/C++. Le compilateur MIDL utilise la chaîne concaténée pour appeler le préprocesseur C pour l’IDL de niveau supérieur, ainsi que pour les fichiers IDL importés, ainsi que pour tous les fichiers ACF correspondants présents.

Lorsque le commutateur /cpp_opt est présent, ce qui doit être un cas rare pour les plateformes 32 bits et 64 bits actuelles, le compilateur MIDL concatène la chaîne spécifiée par le commutateur /cpp_cmd avec la chaîne spécifiée par le commutateur /cpp_opt . Le compilateur MIDL utilise la chaîne concaténée pour appeler le fichier binaire de préprocesseur indiqué à la place du préprocesseur par défaut. Lorsque le commutateur /cpp_opt est présent, ni les options du compilateur MIDL spécifiées par les commutateurs /I, /D et /U , ni le commutateur du compilateur C /E ne sont concaténées avec la chaîne. Vous devez fournir l’option /E, ou l’option équivalente, dans le cadre de la chaîne.

/cpp_cmd présent ? /cpp_opt présent? Description
Non (par défaut) Non (par défaut) Appelle le compilateur Microsoft C/C++ par défaut avec les paramètres obtenus à partir des commutateurs MIDL /I, /D et /U . Ajoute les commutateurs de préprocesseur /E et /nologo.
Oui Non Appelle le fichier binaire de préprocesseur indiqué avec les mêmes commutateurs que ci-dessus.
Non Oui Appelle le compilateur Microsoft C avec les options spécifiées. N’utilise pas les options MIDL /I, /D, /U . Vous devez fournir /E dans le cadre de /cpp_opt.
Oui Oui Appelle le fichier binaire de préprocesseur spécifié avec les options spécifiées uniquement. Vous devez utiliser des guillemets.

 

Exemples

midl /cpp_cmd d:\nt\tools\ia64\cl.exe /DFLAG=TRUE /Ic:\inc filename.idl

midl /cpp_cmd « mycpp » /DFLAG=TRUE /Ic:\inc filename.idl

midl /cpp_opt « /E /DFLAG=TRUE /Ic:\inc » filename.idl

midl /cpp_cmd « cl » /cpp_opt « /E /DFLAG=TRUE /Ic:\inc » filename.idl

Voir aussi

/savePP

/cpp_opt

Syntaxe de ligne de commande MIDL générale

/no_cpp

Configuration requise du préprocesseur C pour MIDL