O que #pragma comment
significa o seguinte?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
c++
visual-c++
macros
pragma
user198729
fonte
fonte
Linker -> General -> Additional Library Directories
)?Eu sempre os chamei de "diretivas do compilador". Eles direcionam o compilador para fazer as coisas, ramificando, incluindo bibliotecas como mostrado acima, desativando erros específicos, etc., durante a fase de compilação.
As empresas de compiladores geralmente criam suas próprias extensões para facilitar seus recursos. Por exemplo, (acredito), a Microsoft iniciou o negócio "#pragma once" e era apenas em produtos da MS, agora não tenho tanta certeza.
Diretivas Pragma Inclui "#pragma comment" na tabela que você verá.
HTH
Suspeito que o GCC, por exemplo, tenha seu próprio conjunto de # pragmas.
fonte
#pragma comment
significa.Esses links nas bibliotecas selecionadas no MSVC ++.
fonte
As diretivas da Pragma especificam as opções do compilador do sistema operacional ou da máquina (x86 ou x64 etc.). Tem várias opções acessíveis. Detalhes podem ser encontrados em https://msdn.microsoft.com/en-us/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
tem esse formato.Consulte https://msdn.microsoft.com/en-us/library/7f0aews7.aspx para obter detalhes sobre diferentes tipos de comentários.
#pragma comment(lib, "kernel32") #pragma comment(lib, "user32")
As linhas de código acima incluem os nomes (ou caminho) da biblioteca que precisam ser pesquisados pelo vinculador. Esses detalhes estão incluídos como parte do registro de pesquisa na biblioteca no arquivo de objeto.
Então, neste caso,
kernel.lib
euser32.lib
são procurados pelo vinculador e incluído no executável final.fonte
As respostas e a documentação fornecida pelo MSDN são as melhores, mas eu gostaria de adicionar um caso típico que eu uso muito, o que requer o uso de
#pragma comment
para enviar um comando ao vinculador no momento do link, por exemplodiga ao vinculador para alterar o formulário do ponto de entrada
WinMain()
paraEntry()
depoisCRTStartup
transferir o controlador paraEntry()
fonte