Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
INF282 2008-2 Cap03 Parte 01

INF282 2008-2 Cap03 Parte 01

Ratings: (0)|Views: 17 |Likes:
Published by c3s4r64

More info:

Published by: c3s4r64 on Oct 17, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/16/2009

pdf

text

original

 
LP2 2008 -11
Lenguajes de Programación 2Lenguajes de Programación 2
LibreríasLibrerías
LP2 2008 -12
IntroducciónIntroducción
Una librerUna librerí í a ea essun programa cuyosun programa cuyoselementoselementospueden ser utilizados por otros programaspueden ser utilizados por otros programas..La forma de crear y utilizar una librería dependenLa forma de crear y utilizar una librería dependendel lenguaje de programación o del sistemadel lenguaje de programación o del sistemaoperativo.operativo.
LP2 2008 -13
Librerías en C/C++Librerías en C/C++
Dos tiposDos tipos
 –  – 
Estáticas: Enlazadas con los OBJ’s para forman unEstáticas: Enlazadas con los OBJ’s para forman unnuevo programa.nuevo programa.
 –  – 
Dinámicas: Enlazadas con el programa en tiempo deDinámicas: Enlazadas con el programa en tiempo deejecución.ejecución.
LP2 2008 -14
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Estas Estááticasticas
 –  – 
Forman parte del programa finalForman parte del programa final
 –  – 
Para utilizarlas hay que agregarlas al proceso dePara utilizarlas hay que agregarlas al proceso deenlace. Si se utiliza un IDE, se agrega junto con losenlace. Si se utiliza un IDE, se agrega junto con losarchivos fuente.archivos fuente.
 
LP2 2008 -15
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicasmicas
 –  – 
NO forman parte del programa final.NO forman parte del programa final.
 –  – 
Son ejecutadas por los hilos de los procesos que lasSon ejecutadas por los hilos de los procesos que lasutilizan.utilizan.
 –  – 
Exponen un conjunto de funciones exportadas.Exponen un conjunto de funciones exportadas.
 –  – 
La llamada a una funciLa llamada a una funcióón exportada esn exportada esmapeamapeaalalespacio deespacio dedirecdirec. del hilo llamador.. del hilo llamador.
LP2 2008 -16
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Estructuramicas, Estructura
1Nombre 12Nombre 2......NNombre NDatos ycódigo dela libreríaTabla deexportaciónDLLÍndiceNombre dela función
 
Dirección 1Dirección 2...DirecciónNDirección dela función
 
1Nombre 12Nombre 2......NNombre NDatos ycódigo dela libreríaTabla deexportaciónDLLÍndiceNombre dela función
 
Dirección 1Dirección 2...DirecciónNDirección dela función
 
LP2 2008 -17
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Creacimicas, Creacióónn
 –  – 
En un IDE, crear un proyecto especificando el tipoEn un IDE, crear un proyecto especificando el tipoadecuado para un DLL.adecuado para un DLL.
 –  – 
Agregar los archivosAgregar los archivos
*.H: Prototipos de las funciones exportadas.*.H: Prototipos de las funciones exportadas.*.C o *.CPP: Implementaci*.C o *.CPP: Implementacióón.n.*.DEF: Declaraci*.DEF: Declaracióón de las funciones a exportar.n de las funciones a exportar.
 –  – 
Compilar.Compilar.
LP2 2008 -18
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Ejemplomicas, Ejemplo
 –  – 
Archivo cabecera:Archivo cabecera:MiLibreria.HMiLibreria.H
#include <#include <windows.hwindows.h>>##ifdefifdef __ __cpluspluscplusplusexternexternCC{{##endifendifvoid WINAPIvoid WINAPISaludame(charSaludame(char**szNombreszNombre););##ifdefifdef __ __cpluspluscplusplus}}#endif#endif
 
LP2 2008 -19
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Ejemplomicas, Ejemplo
 –  – 
Archivo implementaciArchivo implementacióón:n:MiLibreria.cppMiLibreria.cpp
BOOL WINAPIBOOL WINAPIDllMainDllMain( HANDLE( HANDLEhModulehModule, DWORD, DWORDdwReasondwReason, LPVOID, LPVOIDlpReservedlpReserved) {) {switch (switch (dwReasondwReason) {) {case DLL_PROCESS_ATTACH:case DLL_PROCESS_ATTACH:break;break;case DLL_THREAD_ATTACH:case DLL_THREAD_ATTACH:break;break;case DLL_THREAD_DETACH:case DLL_THREAD_DETACH:break;break;case DLL_PROCESS_DETACH:case DLL_PROCESS_DETACH:break;break;}}return TRUE;return TRUE;}}
LP2 2008 -110
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Ejemplomicas, Ejemplo
 –  – 
Archivo implementaciArchivo implementacióón:n:MiLibreria.cppMiLibreria.cpp
#include#include""MiLibreria.hMiLibreria.h""BOOL WINAPIBOOL WINAPIDllMainDllMain( ... ) {( ... ) {////AquiAquiva lo indicadova lo indicadoen la anterior diapositivaen la anterior diapositiva}}voidvoidWINAPIWINAPISaludame(charSaludame(char**szNombreszNombre) {) {MessageBox(NULLMessageBox(NULL,,szNombreszNombre, "Hola",, "Hola",MB_OKMB_OK););}}
LP2 2008 -111
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Ejemplomicas, Ejemplo
 –  – 
Archivo implementaciArchivo implementacióón:n:MiLibreria.def MiLibreria.def 
LIBRARY SALUDAMEDLLLIBRARY SALUDAMEDLLDESCRIPTION "ImplementaciDESCRIPTION "Implementacióón den deuna DLLuna DLL""EXPORTSEXPORTSSaludameSaludame@1@1
LP2 2008 -112
Librerías en C/C++Librerías en C/C++
LibrerLibrerí í as Dinas Dináámicas, Utilizacimicas, Utilizacióónn
 –  – 
Modo implModo implí í citocito
Se utiliza el archivo LIB generado al compilar la DLL,Se utiliza el archivo LIB generado al compilar la DLL,en la configuracien la configuracióón correspondiente al IDE.n correspondiente al IDE.Se incluye el archivo cabecera de la DLL en losSe incluye el archivo cabecera de la DLL en losarchivos de implementaciarchivos de implementacióón que llamen a alguna den que llamen a alguna delas funciones exportadas.las funciones exportadas.

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->