Que signifie "# pragma comment"?
Que signifie #pragma comment
dans ce qui suit?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
4 réponses
#pragma comment
est une directive du compilateur qui indique Visual C++ pour laisser un commentaire dans le fichier objet généré. Le commentaire peut ensuite être lu par l'éditeur de liens lorsqu'il traite des fichiers objet.
#pragma comment(lib, libname)
indique à l'éditeur de liens pour ajouter le "libname" bibliothèque à la liste des dépendances de la bibliothèque, comme si tu l'avais ajouté dans les propriétés du projet à Linker->Input->Additional dependencies
Voir #pragma commentaire sur MSDN
Je les ai toujours appelés " directives du compilateur."Ils dirigent le compilateur pour faire des choses, brancher, y compris des libs comme indiqué ci-dessus, désactiver des erreurs spécifiques, etc. pendant la phase de compilation.
Les sociétés de compilateurs créent généralement leurs propres extensions pour faciliter leurs fonctionnalités. Par exemple, (je crois) Microsoft a commencé l'affaire "# pragma once " et c'était seulement dans les produits MS, maintenant je ne suis pas si sûr.
Directives Pragma Il comprend les "#pragma commentaire" dans la de table, vous verrez.
HTH
Je soupçonne GCC, par exemple, a son propre ensemble de # pragma.
Les directives Pragma spécifient les options du compilateur spécifiques au système d'exploitation ou à la machine (x86 ou x64, etc.). Il ya plusieurs options disponibles. Les détails peuvent être trouvés dans https://msdn.microsoft.com/en-us/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
a ce format.
Voir https://msdn.microsoft.com/en-us/library/7f0aews7.aspx pour plus de détails sur le type de commentaire différent.
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Les lignes de code ci-dessus incluent les noms de bibliothèque (ou chemin) qui doivent être recherché par l'éditeur de liens. Ces détails sont inclus dans l'enregistrement de recherche de bibliothèque dans l'objet fichier.
Donc, dans ce cas, kernel.lib
et user32.lib
sont recherchés par l'éditeur de liens et inclus dans l'exécutable final.