Que #pragma comment
signifie ce qui suit?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
c++
visual-c++
macros
pragma
user198729
la source
la source
Linker -> General -> Additional Library Directories
)?Je les ai toujours appelés «directives du compilateur». Ils ordonnent au compilateur de faire des choses, de créer des branches, y compris des bibliothèques comme indiqué ci-dessus, de désactiver des erreurs spécifiques, etc., pendant la phase de compilation.
Les sociétés de compilation créent généralement leurs propres extensions pour faciliter leurs fonctionnalités. Par exemple, (je crois) Microsoft a lancé l'accord «#pragma once» et ce n'était que dans les produits MS, maintenant je n'en suis pas si sûr.
Directives Pragma Il inclut "#pragma comment" dans le tableau que vous verrez.
HTH
Je suppose que GCC, par exemple, a son propre ensemble de # pragma.
la source
#pragma comment
signifie.Ces liens dans les bibliothèques sélectionnées dans MSVC ++.
la source
Les directives Pragma spécifient les options du compilateur spécifiques au système d'exploitation ou à la machine (x86 ou x64, etc.). Il y a 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.Reportez-vous à https://msdn.microsoft.com/en-us/library/7f0aews7.aspx pour plus de détails sur les différents types de commentaires.
#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és par l'éditeur de liens. Ces détails sont inclus dans le cadre de l'enregistrement de recherche de bibliothèque dans le fichier objet.
Donc, dans ce cas
kernel.lib
etuser32.lib
sont recherchés par l'éditeur de liens et inclus dans l'exécutable final.la source
Les réponses et la documentation fournies par MSDN sont les meilleures, mais je voudrais ajouter un cas typique que j'utilise beaucoup qui nécessite l'utilisation de
#pragma comment
pour envoyer une commande à l'éditeur de liens au moment du lien par exempledire à l'éditeur de liens de changer le formulaire de point d'entrée
WinMain()
enEntry()
après que leCRTStartup
transfert de contrôleur àEntry()
la source