Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 12415|Resposta: 1

[C] Resumo em C++ dos métodos que referenciam Lib e Dll

[Copiar link]
Publicado em 02/07/2019 17:06:54 | | |
1. O que é uma biblioteca de conexão estática (LIB) e o que é uma DLL de biblioteca de link dinâmico?     
Tanto as bibliotecas de link estático quanto as dinâmicas compartilham código, ambas em formato binário



2. A diferença entre a LIB da biblioteca de links estáticos e a DLL da biblioteca de link dinâmico
Se você usar uma biblioteca vinculada estaticamente, todas as instruções da biblioteca são incluídas diretamente no arquivo EXE resultante. A biblioteca dinâmica de link dinâmico não precisa estar incluída no arquivo EXE final, que pode ser referenciado e descarregado "dinamicamente" quando o arquivo EXE for executado. Outra diferença é que uma biblioteca de links estáticos não pode mais conter outras bibliotecas de links dinâmicas ou estáticas, enquanto uma biblioteca de link dinâmico pode conter outras bibliotecas de links dinâmicas ou estáticas.



3. Método de chamada de biblioteca de link estática:
Vamos sobreviver para gerar um arquivo de liberação:

VS2017--> Criar um novo projeto-->Windows Desktop--> biblioteca estática, o nome do projeto é Libtest



Novo functem.h e functem.cpp

functem.h:

#pragma uma vez
#include "stdafx.h"
#ifndef _functem_H
#define _functem_H
int functem(int a, int b);
#endif
functem.cpp:

#include "functem.h"
#include "stdafx.h"

Função int(int A, Int B)
{
        retorne a + b;
}
Depois, gerar o projeto, e haverá dois arquivos, Libtest.lib e Libtest.pdb, no diretório Debug

Ao ligar, são necessários três passos:

1. Copie o Libtest.lib e o functem.h para o diretório do chamador; como mostrado na figura abaixo:



2. Adicione #include "functem.h" acima do arquivo cpp que chama

3. Adicionar #pragma comentário (lib, "Libtest.lib") acima do arquivo cpp que chama



Como mostrado na figura acima, a chamada foi bem-sucedida.



4. Método de chamada de biblioteca de links dinâmicos:
Crie um novo projeto - > biblioteca de links dinâmicos com o nome de projeto Dlltest

Crie um novo Dlltest.h:

#pragma uma vez
#ifndef __CDLL_H__
#define __CDLL_H__
extern "C" int _declspec(dllexport) add(int x, int y);
#endif
Dlltest.cpp:

#include "stdafx.h"
#include "Dlltest.h"
int add(int x, int y)
{
        retorne x + y;
}
Gerar o projeto, no diretório Debug há:



Processo de chamada:

1. Copie Dlltest.dll, Dlltest.lib e Dlltest.h e copie para o diretório do chamador; como mostrado na figura abaixo:



PS: Aqui, na verdade, o Dlltest.lib é usado apenas ao compilar o link do compilador, então, depois que o programa é gerado, você não pode incluir o arquivo lib, apenas o arquivo dll, e o uso real é realmente o arquivo dll. Resumindo, todos os três arquivos precisam ser copiados, mas .h e .lib são usados para compilar links, e apenas .dll precisam ser colocados no diretório final gerado.

2. Adicione #include "Dlltest.h" acima do arquivo cpp chamado

3. Adicionar #pragma comentário (lib, "Dlltest.lib") acima do arquivo cpp que chama



A ligação foi bem-sucedida!
---------------------
Autor: Bird
Fonte: CSDN
Original: https://blog.csdn.net/wcc27857285/article/details/84615891
Aviso de Direitos Autorais: Este artigo é um artigo original do blogueiro, por favor, anexe o link do post do blog para reimpressão!





Anterior:1. Construir o material didático mais recente
Próximo:Escrita tipográfica LPSTR do MFC
Publicado em 16/12/2023 13:10:26 |
Rápido:Autores são banidos ou o conteúdo removido é automaticamente bloqueado
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com