O que #pragma commentsignifica o seguinte?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
O que #pragma commentsignifica o seguinte?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Respostas:
#pragma commenté uma diretiva de compilador que indica o Visual C ++ para deixar um comentário no arquivo de objeto gerado. O comentário pode ser lido pelo vinculador ao processar arquivos de objetos.
#pragma comment(lib, libname) diz ao vinculador para adicionar a biblioteca 'libname' à lista de dependências da biblioteca, como se você a tivesse adicionado nas propriedades do projeto em Linker->Input->Additional dependencies
Consulte o comentário #pragma no MSDN
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.
#pragma commentsignifica.
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.libe user32.libsão procurados pelo vinculador e incluído no executável final.
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 commentpara enviar um comando ao vinculador no momento do link, por exemplo
#pragma comment(linker,"/ENTRY:Entry")
diga ao vinculador para alterar o formulário do ponto de entrada WinMain()para Entry()depois CRTStartuptransferir o controlador paraEntry()
Linker -> General -> Additional Library Directories)?