Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 12415|Respuesta: 1

[C] C++ Resumen de métodos que referencian Lib y Dll

[Copiar enlace]
Publicado en 2/7/2019 17:06:54 | | |
1. ¿Qué es una biblioteca de conexión estática (LIB) y qué es una DLL de biblioteca de enlace dinámico?     
Tanto las bibliotecas de enlace estático como las dinámicas comparten código, ambas en formato binario



2. La diferencia entre la LIB de la biblioteca de enlaces estáticos y la DLL de la biblioteca de enlaces dinámicos
Si usas una biblioteca enlazada estáticamente, todas las instrucciones de la biblioteca se incluyen directamente en el archivo EXE resultante. La biblioteca dinámica de enlace dinámico no tiene que incluirse en el archivo EXE final, que puede ser referenciado y descargado "dinámicamente" cuando se ejecuta el archivo EXE. Otra diferencia es que una biblioteca de enlaces estáticos ya no puede contener otras bibliotecas de enlaces dinámicas o estáticas, mientras que una biblioteca de enlaces dinámicos puede contener otras bibliotecas de enlaces dinámicas o estáticas.



3. Método de llamada a biblioteca de enlaces estática:
Sobrevivamos para generar un archivo de liberación:

VS2017--> Crear un nuevo proyecto-->escritorio de Windows--> biblioteca estática, el nombre del proyecto es Libtest



Nuevo functem.h y functem.cpp

functem.h:

#pragma una 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"

Función int (int A, Int B)
{
        devolver a + b;
}
Luego genera el proyecto, y habrá dos archivos, Libtest.lib y Libtest.pdb, en el directorio Debug

Al llamar, se requieren tres pasos:

1. Copiar Libtest.lib y functem.h al directorio del llamante; como se muestra en la figura siguiente:



2. Añadir #include "functem.h" encima del archivo cpp que llama

3. Añadir #pragma comentario (lib, "Libtest.lib") encima del archivo cpp que llama



Como se muestra en la figura anterior, la llamada ha sido exitosa.



4. Método de llamada a biblioteca de enlaces dinámicos:
Crea un nuevo proyecto - > biblioteca de enlaces dinámicos con el nombre de proyecto Dlltest

Crea un nuevo Dlltest.h:

#pragma una 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)
{
        devolver x + y;
}
Genera el proyecto, en el directorio Debug hay:



Proceso de llamada:

1. Copiar Dlltest.dll, Dlltest.lib y Dlltest.h y copiarlos al directorio del llamante; como se muestra en la figura siguiente:



PD: Aquí, de hecho, Dlltest.lib solo se usa al compilar el enlace del compilador, así que después de generar el programa, no puedes incluir el archivo lib, solo el archivo dll, y el uso real es el archivo dll. En resumen, los tres archivos deben ser copiados, pero se utilizan .h y .lib para compilar enlaces, y solo .dll deben colocarse en el directorio generado final.

2. Añadir #include "Dlltest.h" encima del archivo cpp llamado

3. Añadir #pragma comentario (lib, "Dlltest.lib") sobre el archivo cpp que llama



¡La llamada es exitosa!
---------------------
Autor: Bird
Fuente: CSDN
Original: https://blog.csdn.net/wcc27857285/article/details/84615891
Aviso de derechos de autor: Este artículo es un artículo original del bloguero, ¡por favor adjunta el enlace a la entrada del blog para reimprimirlo!





Anterior:1. Crear el material didático más reciente
Próximo:Tipografía LPSTR de MFC
Publicado en 16/12/2023 13:10:26 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com