Hay 3 tipos de bibliotecas en Windows:
- biblioteca de objetos (* .lib)
- biblioteca de importación (* .lib)
- librería dinámica (* .dll)
bibliotecas de objetos están vinculadas estáticamente. Contienen las definiciones de objeto completo del código abstraído por la biblioteca.
importar bibliotecas es una forma especial de una biblioteca de objetos. En lugar de contener código, contienen información para el vinculador que finalmente asigna el archivo ejecutable a la biblioteca de enlace dinámico.
bibliotecas de vínculos dinámicos, como bibliotecas de objetos, código de suministro para su programa. Sin embargo, este código se carga en tiempo de ejecución y no se compila en su exe.
No siempre es necesario vincular una biblioteca de importación. En su lugar, puede llamar a LoadLibrary() y buscar los puntos de entrada de API por nombre u ordinal. (Siempre debe indicarle al código qué DLL y en qué API del DLL desea ingresar).
Los otros comentarios son correctos porque no se puede convertir un archivo DLL en una lib estática sin recompilar el código de la biblioteca - es un tipo diferente de salida.
¿No hay opciones que permitan vincular estáticamente el código del archivo .dll particular? –
Creo que tiene que compilar la biblioteca para la vinculación estática, no estoy seguro de que pueda convertir una dll en una biblioteca enlazada estáticamente después de que se haya compilado. –
@Andrew Los archivos dll siempre vienen con un .lib? ¿Cómo sé cuando el archivo .lib no es suficiente y necesito proporcionar dll? – undu