Question

J'ai un projet COM qui contient un certain nombre de fichiers IDL, dont certains sont importés dans d'autres.Comment Visual Studio décide-t-il lesquels compiler (à l’aide de MIDL) en premier ?

Je veux contrôler la commande.J'ai un fichier IDL maître qui contient la déclaration de ma bibliothèque avec plusieurs importations, et j'obtiens une erreur de build si ce n'est pas le premier compilé.

(Si tout cela vous semble vraiment bizarre...Je suis nouveau sur COM/ATL, et c'est vraiment très déroutant).

Était-ce utile?

La solution

Vous ne pouvez pas demander à Visual Studio de créer des fichiers .ild dans un ordre spécifique.Au lieu de cela, vous pouvez #include certains fichiers .idl dans d'autres fichiers .idl et définissez les fichiers que vous avez importés sur "exclus de la construction".De cette façon, MIDL ne compilera pas les fichiers importés séparément, mais inclura leur contenu à un emplacement spécifique d'un autre fichier et sera compilé en tant que partie de ce fichier (même effet qu'avec le préprocesseur C). #include).

Autres conseils

Vous pouvez faire des choses Visual Studio dans n'importe quel ordre de votre choix, il y a 2 façons de faire ceci:

  1. mettre dans une étape de pré-construction dans laquelle vous pouvez l'obtenir pour construire celles que vous souhaitez construire en premier.

  2. Mettez ceux que vous souhaitez créer d'abord dans un projet séparé et que vous entamez d'abord pour construire ce projet en faisant votre autre en dépendant de celui-ci.

  3. C'est ce que vous devez faire si vous ne pouvez pas modifier les fichiers IDL.Si cependant un fichier IDL dépend vraiment d'un autre et que vous pouvez les modifier, alors faites ce qui a été suggéré ci-dessus et en obtenir un pour inclure l'autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top