Was bedeutet #pragma comment
im Folgenden?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
#pragma comment
ist eine Compiler-Direktive, die Visual C++ anweist, einen Kommentar in der generierten Objektdatei zu hinterlassen. Der Kommentar kann dann vom Linker gelesen werden, wenn er Objektdateien verarbeitet.
#pragma comment(lib, libname)
weist den Linker an, die Bibliothek 'libname' zur Liste der Bibliotheksabhängigkeiten hinzuzufügen, als hätten Sie sie in den Projekteigenschaften unter Linker->Input->Additional dependencies
hinzugefügt.
Siehe #pragma comment auf MSDN
Ich habe sie immer "Compiler-Direktiven" genannt. Sie weisen den Compiler an, Dinge zu tun, verzweigen, einschließlich der oben gezeigten libs, und deaktivieren bestimmte Fehler usw. während der Kompilierungsphase.
Compiler-Unternehmen erstellen normalerweise eigene Erweiterungen, um ihre Funktionen zu vereinfachen. Zum Beispiel (ich glaube) Microsoft hat mit dem "#pragma once" -Angebot angefangen und es war nur bei MS-Produkten, jetzt bin ich mir nicht so sicher.
Pragma Direktiven Es enthält "#pragma comment" in der Tabelle, die Sie sehen.
HTH
Ich vermute, GCC zum Beispiel hat seine eigenen # pragmas.
Diese verknüpfen in den in MSVC++ ausgewählten Bibliotheken.
Pragma-Direktiven geben Betriebssystem- oder maschinenspezifische Compileroptionen (x86 oder x64 usw.) an. Es stehen verschiedene Optionen zur Verfügung. Details finden Sie in https://msdn.Microsoft.com/de-de/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
hat dieses Format.
Unter https://msdn.Microsoft.com/de-de/library/7f0aews7.aspx finden Sie Einzelheiten zu verschiedenen Kommentartypen.
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Die obigen Codezeilen enthalten die Bibliotheksnamen (oder den Pfad), die vom Linker gesucht werden müssen. Diese Details sind als Teil des Bibliothekssuchdatensatzes in der Objektdatei Enthalten.
In diesem Fall werden also kernel.lib
und user32.lib
vom Linker gesucht und in die endgültige ausführbare Datei aufgenommen.