Windows API

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Prince Of Game Legend Member lv15

    Group
    Member
    Posts
    6,746
    Location
    dalla casa dell'Uomo del Monte

    Status
    Offline
    Per Windows API si intende l’insieme delle interfacce di programmazione (in inglese Application Programming Interface) disponibili nei sistemi operativi Windows di Microsoft. Per utilizzare le Windows API Microsoft fornisce gratuitamente il Platform SDK, una raccolta di strumenti e documentazione da abbinare ad un compilatore di linguaggio C.

    Versioni delle Windows API

    Le Windows API si possono dividere nei seguenti gruppi:

    * Win16, versione iniziale a 16 bit delle Windows API, le cui specifiche sono disponibili anche come Standard ECMA con codice ECMA-234.

    * Win32, evoluzione a 32 bit per le versioni moderne di Windows.

    * Win32s, sottoinsieme di Win32 da installare sulle versioni di Windows a 16 bit per eseguire applicazioni compilate a 32 bit.

    * Win64, evoluzione a 64 bit per le versioni di Windows destinate ai nuovi processori a 64 bit di Intel e AMD.

    Struttura delle Windows API

    Le API consistono in un insieme di funzioni in linguaggio C implementate in librerie a collegamento dinamico (in inglese Dynamic-link libraries o DLL).

    Le Windows API, nonostante siano scritte, per ragioni di prestazioni, in un mix di linguaggio C e assembler, presentano un complesso modello orientato agli oggetti con una struttura molto uniforme ed uno stile che è stato di ispirazione per molti altri progetti.

    La struttura di base delle Windows API è rimasta pressoché invariata da Windows 1.0 ad oggi. Vi sono tre gruppi principali di API: kernel, GDI e user.

    API Kernel

    Le API kernel forniscono alle applicazioni un’interfaccia di alto livello ai servizi del kernel del sistema operativo (gestione della memoria, dei processi, sincronizzazione, ecc.). Sulle versioni di Windows dalla 1.0 a Windows 4.9 (Windows ME) molte di queste API sono semplicemente dei richiami ai servizi forniti dagli interrupt software di MS-DOS. Sui sistemi con kernel NT, queste API effettuano delle chiamate alle API di basso livello di NT, chiamate Native API.

    API GDI

    Le API GDI (Graphics Device Interface) costituiscono la libreria grafica dei sistemi Windows. GDI virtualizza tutti i dispositivi grafici (monitor, stampanti, plotter) in modo da avere un’interfaccia omogenea (chiamata Device Context) tra le differenti tipologie di dispositivi. Inoltre GDI permette di creare e manipolare una serie di oggetti grafici, tra cui font, penne, pennelli, bitmap, ecc.

    Librerie a più alto livello

    Le Windows API, nonostante fossero state scritte in un mix di linguaggio C e assembler per ragioni di prestazioni, presentano un complesso modello orientato agli oggetti e presentavano una sostanziale uniformità e uno stile che è stato di ispirazione per molti altri progetti. Tuttavia la stratificazione nel tempo di nuove funzionalità, la necessità di avere una completa retrocompatibilità e l’enorme mole complessiva di funzioni disponibili (ad oggi diverse migliaia) ha reso la programmazione di Windows con le API ostica e inadatta agli standard oggi accettati. Per questo sono nate nel tempo molte librerie (in linguaggi come C++ e altri) che propongono un modello ad oggetti più astratto e semplice da usare, trasformando di fatto le Windows API in un’interfaccia di basso livello.

    Esempi di librerie che incapsulano le Windows API sono:

    * MFC, acronimo di Microsoft Foundation Classes, libreria in C++ molto utilizzata che però ha un livello di astrazione ridotto.
    * OWL, acronimo di Object Windows Library, libreria in C++ di Borland con un maggiore livello di astrazione.
    * ATL, acronimo di Active Template Library, libreria in C++ basata su template di Microsoft.
    * WFC, acronimo di Windows Foundation Classes, libreria per Java non più utilizzata in seguito alla causa giudiziaria intentata da Sun Microsystems a Microsoft.
    * .NET framework, libreria di Microsoft indipendente dal linguaggio perché destinata ai compilatori CLR.
     
    .
0 replies since 1/6/2007, 17:58   101 views
  Share  
.