¿Qué #pragma comment
significa en lo siguiente?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
c++
visual-c++
macros
pragma
usuario198729
fuente
fuente
Linker -> General -> Additional Library Directories
)?Siempre los he llamado "directivas de compilación". Dirigen al compilador a hacer cosas, ramificar, incluidas las bibliotecas como se muestra arriba, deshabilitar errores específicos, etc., durante la fase de compilación.
Las compañías compiladoras generalmente crean sus propias extensiones para facilitar sus funciones. Por ejemplo, (creo) Microsoft comenzó el acuerdo "#pragma una vez" y fue solo en productos MS, ahora no estoy tan seguro.
Directivas de Pragma Incluye "#pragma comment" en la tabla que verá.
HTH
Sospecho que GCC, por ejemplo, tiene su propio conjunto de # pragma.
fuente
#pragma comment
significa.Estos enlazan en las bibliotecas seleccionadas en MSVC ++.
fuente
Las directivas de Pragma especifican las opciones del compilador del sistema operativo o de la máquina (x86 o x64, etc.). Hay varias opciones disponibles. Los detalles se pueden encontrar en https://msdn.microsoft.com/en-us/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
tiene este formatoConsulte https://msdn.microsoft.com/en-us/library/7f0aews7.aspx para obtener detalles sobre diferentes tipos de comentarios.
#pragma comment(lib, "kernel32") #pragma comment(lib, "user32")
Las líneas de código anteriores incluyen los nombres de biblioteca (o ruta) que el vinculador debe buscar. Estos detalles se incluyen como parte del registro de búsqueda de biblioteca en el archivo objeto.
Por lo tanto, en este caso
kernel.lib
yuser32.lib
se buscan por el enlazador e incluido en el ejecutable final.fuente
Las respuestas y la documentación proporcionada por MSDN son las mejores, pero me gustaría agregar un caso típico que uso mucho y que requiere el uso de
#pragma comment
enviar un comando al enlazador en el momento del enlace, por ejemplodígale al enlazador que cambie la forma del punto de entrada
WinMain()
aEntry()
después de esoCRTStartup
va a transferir el control aEntry()
fuente