Hola Yolmer,<br><br><div class="gmail_quote">2010/11/2 Yolmer Rosales <span dir="ltr"><<a href="mailto:yolmer.rosales@gmail.com">yolmer.rosales@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

quiero decir cuando desinstalo un programa algunas veces me pregunta<br>
si quiero eliminar el dll compartido, en realidad un dll lo puede usar<br></blockquote><div><br>Sí, para eso mismo se usan DLL's; para que sean compartidas entre ejecutables y otras DLL's.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

más de un archivo? y en la vida real, se da el caso de que lo use? no<br>
lo se.<br>
<br></blockquote><div><br>Sí; bastante. De hecho, muchos elementos y funcionalidades de MS-Windows están en DLL's. Cuando una aplicación crea una ventana, invoca 'CreateWindowEx()' cuya definición está en "user32.dll". La única forma de poder invocar a esta función por cualquier programa en cualquier momento de una manera sencilla es usando DLL's.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
pero siento que tengo algunas respuestas, aunque está todo esto<br>
enredado en mi cabeza. :-S<br>
<br>
en que casos se recomienda hacer una librería estática y en cual una dinámica.<br>
<br></blockquote><div><br>Como ha mencionado Pedro, una biblioteca estática se agrega al ejecutable y por tanto aumenta su tamaño, pero no se puede eliminar, por lo que no hay conflictos con otras bibliotecas externas; esto puede ser ventajoso o no. Una biblioteca dinámica puede ser compartida con otros programas y es más fácil de actualizar, ya que las aplicaciones no tienen que ser actualizadas, sólo porque se modifique algo en las bibliotecas dinámicas.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
puede uno usar una dll que se haya instalado con algún programa de<br>
otro fabricante? bueno creo que esta pregunta es estup... Por supuesto<br></blockquote><div><br>Sí, puedes.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

que no necesito un archivo de cabecera. Cierto?<br>
<br></blockquote><div><br>En general, sí necesitarás el archivo de cabecera, para que el compilador sepa que las entidades que usas son realmente funciones y necesita conocer sus prototipos. Recuerda que C/C++ son lenguajes FUERTEMENTE tipificados; requieren conocer los tipos de todas las entidades.<br>
<br>Ahora bien, si conoces las funciones que están en las bibliotecas dinámicas, entonces puedes escribir sus prototipos explícitamente, sin necesidad del archivo de cabecera. Sin embargo, esto es poco usual y no es muy práctico en muchas de las circunstancias.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
las librerías que vienen con el compilador ninguna es dinámica verdad?<br></blockquote><div><br>No es cierto, pero claro está, cada compilador puede o no usar bibliotecas dinámicas. Los compiladores para MS-Windows seguramente usará la versión dinámica de la biblioteca estándar, porque MS-Windows la ofrece en cualquier versión de MS-Windows. Se llama "msvcrt.dll", aunque realmente existen otras versiones: "msvcrt20.dll", "msvcrt40.dll", y algunas otras más.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
quiere decir que al menos un trozo de código se debe repetir en cada<br>
ejecutable, se puede conseguir estas librerías en forma de dll?<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div><br>Se puede crear una biblioteca dinámica a partir de una estática. La mayoría de los compiladores trae alguna herramienta para esto; por ejemplo, Borland trae "implib.exe" (si mal no recuerdo) y MinGW trae "dlltool.exe".<br>
<br><br>Espero que todo esto te vaya aclarando el tema.<br><br>Steven<br><br></div></div>