Elaborarea aplicatiilor complexe poate fi smiplificata daca problema de elaborare se imparta in probleme mai mici. Atunci fiecare solutie va fi reprezentata printr-un modul - biblioteca de programare. In cadrul prezentarii se face descrierea bibliotecilor de programare, modul de elaborare si de utilizare a lor
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Prezentare USO - Web Application Integrationmihneasim
prezentare despre integrarea puterii de procesare a aplicatiilor standalone server/client-side in web, in spiritul cursului de Utilizarea Sistemelor de Operare.
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Prezentare USO - Web Application Integrationmihneasim
prezentare despre integrarea puterii de procesare a aplicatiilor standalone server/client-side in web, in spiritul cursului de Utilizarea Sistemelor de Operare.
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Primul pas de gestionare server este optinerea informatiei necesare din sistem de operare. In aceasta prezentare se vorbeste despre instrumente de acces la informatie in SO WIndows, Linux.
Românismul de la Mihai Eminescu la Grigore Vieruinachirilov
Proiect “Educație online fără hotare” 2023 - 2024,
implementat de Direcția Generală Educație, Tineret și Sport a municipiului Chișinău în cadrul Proiectului “Educație online”
2. Cuprins
Ce se numește biblioteca de programare
Tipuri bibliotecilor de programare
Structura bibliotecilor de programare
Particularitățile bibliotecilor de programare
Recomandări
Elaborarea bibliotecilor de programare
Biblioteci statice
Biblioteci dinamice
Utilizarea bibliotecilor de programare
Legarea in mod implicit
Legarea in mod explicit
3. Biblioteci de programare
Biblioteci de programare sunt arhive ale resurselor
de programare, cum ar fi: funcții, clase, obiecte,
constante și diferite variabile.
Ca constante în biblioteci pot fi definite și datele grafice sau multimedia.
4. Tipuri bibliotecilor
de programare
Biblioteci statice
La etapa de compilare în aplicația se adaugă fragmente
de cod-obiect din biblioteca, care reprezint funcții
(clase sau alte resurse) utilizate.
Biblioteci dinamice
La etapa de compilare în aplicația se includ numai
apelurile funcțiilor (sau referințe la resurse) din
biblioteca dinamică.
6. Particularitățile
bibliotecilor de programare
În program rezultant se adaugă
numai codul funcțiilor utilizate.
Programul nu depinde de
existența bibliotecilor în SO.
Ocupă mai puțină memorie
operativă (relativ).
Volumul programului este mai
mare (relativ).
Dacă biblioteca a fost schimbată,
se cere recompilarea
programului.
Independent de numarul
funcțiilor utilizate, programul
încarcă in memoria operativă
DLL în întregime.
Mai multe programe pot lucra
concomitent cu o bibliotecă dll.
Volumul programului este mai
mic (relativ)
Este necesară existența
bibliotecii dll în SO.
După reînniorea bibliotecii dll
recompilarea programului nu
este necesară.
Biblioteci statice Biblioteci dinamice
7. Recomandări
Dacă o bibliotecă nu este standardă sau este rară,
mai bine de utilizat legarea statică.
Dacă biblioteca este standardă sau una larg
utilizată, atunci se recomandă utilizarea legării
dinamice.
Se recomandă crearea ambelor versiuni ale
bibliotecii: versiunea dinamică și statică.
8. Elaborarea bibliotecilor de programare
Proces de
eleborare
bibliotecilor
seamănă cu
elaborarea
aplicațiilor
obișnuite
9. Biblioteci statice: fișiere-antet
#ifndef _GEOMETRY_H_
#define _GEOMETRY_H_
struct point{
double x, y;
point();
point(double, double);
};
struct line{
double a, b, c;
line();
line(double, double, double);
};
#endif
Fisiere-antet trebuie protejate de
includerea repetată cu ajutorul
directivelor preprocesorului:
#ifndef A_CONSTANT
#define A_CONSTANT
#endif
Microsoft VC++ (+ Intel Compiler)
permite utilizarea directivei
#pragma once
11. Biblioteci dinamice: fișier-antet
#ifndef _GEOMETRY_H_
#define _GEOMETRY_H_
#define DLLEXPORT __declspec(dllexport)
struct DLLEXPORT point{
double x, y;
point();
point(double, double);
};
struct DLLEXPORT line{
double a, b, c;
line();
line(double, double, double);
bool contains(const point&) const;
};
DLLEXPORT bool contains(const line&, const point&);
#endif
Se adaugă o indicație
(un macrou) pentru exportul
structurilor și funcțiilor
Cpp fișiere nu se modifică
12. Biblioteci dinamice:
fișiere de definiție a modulelor
Fișiere cu extensia .DEF se
utilizează pentru definirea
funcțiilor exportate de
biblioteca (este o
alternativă pentru
__declspec(dllexport) )
MODULE mylib
EXPORTS
min @1
isPrime @2
nope @3 ; no operation
13. Biblioteci dinamice:
punctul de întrare
În biblioteca dinamică poate fi definit punct
de întrare (se utilizează windows.h).
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
){
switch (ul_reason_for_call){
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
14. Utilizarea bibliotecilor de
programare
Legarea statică
Legarea dinamică implicită
Legarea dinamică explicită
Modul de realizare a legării statice
coincide cu modul de realizare a legării
dinamice implicite.
16. Utilizare bibliotecii în proiect
1. Indicați calea
relativă/absolută pâna la
fișierul antet.
2. Indicați în proprietățile
proiectului calea până la
biblioteca
17. Legarea bibliotecii cu ajutorul unui
macrou
#include "../geometry/geometry.h"
#pragma comment(lib, "../Debug/Geometry.lib")
#include <iostream>
int main(){
plane::point p(1, 0), p2(1, 2);
//plane::line l(1, -1, 0);
//std::cout << l.contains(p);
std::cout << "distance from " << p << " and " << p2 << " is "
<< plane::distance(p, p2) << std::endl;
return 0;
}