Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
highlevel:c:advancing [2008/05/28 18:54] alfred |
highlevel:c:advancing [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 251: | Línea 251: | ||
| - | ==== Crear una biblioteca (Windows) ==== | + | |
| - | Cuando se va a utilizar una librería dinámica en un programa es necesario que se proporcionen dos archivos, un .h (mediante un #include) y un .lib (esta debe ser vinculada desde el compilador), en el primero estará el código de dicha biblioteca y en el segundo un mapeo al archivo .dll. \\ | + | |
| + | |||
| + | ==== Crear y utilizar una biblioteca (Windows) ==== | ||
| + | Compilar una biblioteca estática no tiene problema alguno, se hace como si de un ejecutable normal se tratase sólo que el resultado es un archivo .lib, este ha de vincularse al proyecto y será si el código fuente estubiese en él. Debes hacer un ''#include'' de los .h correspondientes, pero estos no han de tener nada especial, simplemente han de ser copiados ahí. \\ | ||
| + | En cambio, cuando se va a utilizar una librería dinámica en un programa es necesario que se proporcionen dos archivos, un .h (mediante un #include) y un .lib (esta debe ser vinculada desde el compilador), en el primero estará el código de dicha biblioteca y en el segundo un mapeo al archivo .dll. \\ | ||
| Al crear la librería hay que tener en cuenta las siguientes cosas: | Al crear la librería hay que tener en cuenta las siguientes cosas: | ||
| * En el archivo .h del código correspondiente a la biblioteca añadiremos ''<nowiki>extern "C" _declspec(dllexport)</nowiki>'' antes de cada función que queramos que sea utilizable en la biblioteca. | * En el archivo .h del código correspondiente a la biblioteca añadiremos ''<nowiki>extern "C" _declspec(dllexport)</nowiki>'' antes de cada función que queramos que sea utilizable en la biblioteca. | ||
| Línea 313: | Línea 317: | ||
| ... | ... | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== [More] Effective C++ ===== | ||
| + | * [[highlevel:c:effective|[More] Effective C++]] | ||