.h .c y librerias

Me puedes dar alguna explicación sencilla de algunos componentes que inserto en mi programa para que funcione, estos son.
Programa.h
Programa.c
programa.cpp
libreria_util.dll
libreria_util.lib
Se para que son las librerías, pero si importo una dll, porque tengo importar también la .lib (estática).
también se que la . C es para c, ¿y la punto cpp es para c++ o no? Y este es el programa principal, ¿cierto?
pero en concreto que hay en la .h.
2

2 respuestas

Respuesta
1
Pues no se para que tienes tanto el fihero programa en c y en c++. Tu has hecho el programa y lo sabrás. Pero si tienes dos ficheros con el mismo nombre pero uno de C y el otro de C++, huele a que has creado un proyecto desde el VC con ese nombre y te ha creado el fichero programa.cpp mientras que tu tenias ya un fichero que posiblemente querías usar con ese nombre. En todo caso puedes tener problemas si ambos ficheros incluyen la función main() si es el caso que te he dicho. En cuanto a importar una dll, solo se hace en el propio fuente C++ y sirve si el fichero tiene algún componente com. En este caso, te ahorras tener que hacer un include con los interfaces, que ademas puede que no tengas. Si no tiene objetos com, pues no se para que lo añades.
Respuesta
1
Brevemente:
Por notación los archivos .h contienen la declaración de las variables globales y la declaración de las funciones.
Los archivos .c y .cpp contienen el código funcional de tu programa, el .c está escrito en ANSI C y un .cpp normalmente está escrito en C++.
En cuanto a las librerías, estás se usan como colector de código compilado pero no se ejecutan, es decir es una biblioteca de código pero que no es claramente entendible por una persona, está en lenguaje de máquina, hay dos tipos de librerías: las .dll que son librerías dinámicas en Windows, en linux las encuentras con la extensión .so, estás se unen a tu programa en tiempo de ejecución y las librerías estáticas .lib, en linux .a, se unen a tu código en tiempo de compilación.
Si quieres trabajar con librerías necesitas el archivo de interface, .h, donde se indicaron las declaraciones de funciones, como te expliqué anteriormente.
Se supone que si usas una librería estática no debería requerir una dinámica y viceversa, es posible que la .dll esté mal construida.
Espero haber cubierto la mayoría de tus dudas.
De todas maneras estamos en contacto, por si necesitas algo.
Olver

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas