Newsgroup: it.comp.lang.visual-basic
Titolo: Come e quando si usano le API ?

Ciao a tutti. Sono un novello programmatore VB5 e leggo spesso dei
messaggi in cui si parla delle API, avvolte anche con delle righe di
codice, ma non ho ancora capito a che servono e cosa sono. Nel caso
della presenza di codice non riesco a capirci un granche'. Qualcuno
saprebbe colmare questa lacuna, credo molto importante ?
Grazie.
Jerry
--
Automatic posted from 
camcic.unicam.it
 [193.204.8.13]
via Mailgate Server - 
http://www.mailgate.org

saprebbe colmare questa lacuna, credo molto importante ?
Ciao.
Dunque, in breve: Windows è composta fra le altre cose, di una serie di file
DLL. Queste DLL contengono funzioni e procedure che sono chiamabili da VB e
svolgono una serie enorme di funzioni, dalla gestione della memoria al
trattamento di font e stampa, alla gestione delle finestre. Il complesso di
queste funzioni si chiama API (Application Programming Interface). Quando VB
esegue un tuo comando (anche uno semplice come Label1.caption="Nuova
caption") in realtà sta eseguendo una chiamata ad una funzione API - nel
caso dell'esempio che ti ho fatto si tratta di TextOut. Poiché il libro di
Dan Appleman da cui tutti i programmatori VB hanno imparato le funzioni API
registra qualcosa come 1200 funzioni ed è largamente incompleto perché oltre
naturalmente alle interfacce COM (un altro modo -molto complesso- per
esporre funzioni di sistema) mancano anche tutte le funzioni di comdlg32.dll
(common dialogs) e comctl32.dll (common controls), capisci che non esiste
nessuno che sappia come usare ogni singola funzione e bisogna sempre
ricorrere alla documentazione (msdn o appunto Appleman). In generale se
qualcosa non è fattibile con le parole chiave del VB, o è fattibile in
maniera insoddisfacente, di solito il programmatore cerca una funzione API
adatta allo scopo.
Dan Appleman, "The Visual Basic Programmer's Guide to the Win32 API",
Ziff-Davis Press. Ne esiste una traduzione italiana (Mondadori informatica)
che non conosco e quindi non so se la traduzione è buona e soprattutto se è
l'ultima edizione, che copre VB5 (ne era uscita una precedente che copriva
VB4, ma molte funzioni che da VB4 non si potevano chiamare ora sono
accessibili in VB5 grazie ad AddressOf. Se ti va bene l'edizione inglese
(credo che costi anche molto meno) puoi comprarla online a
http://www.desaware.com
.
Saluti,
Domenico


Le API (Application Programming Interface) sono delle funzioni definite
all'interno di librerie a collegamento dinamico(DLL) a cui si può accedere
(dato il collegamento dinamico) in fase di esecuzione.
Servono? Sono utili? Sicuramente si in quanto ti consentono di espandere le
funzionalità di VB e di velocizzare (soprattutto nelle routine grafiche)
l'applicazione. La maggior parte delle funzioni native di VB non sono altro
che richiami alle funzioni API di Windows
Se mi permetti un consiglio, direi che inizialmente dovresti imparare a
utilizzare bene il VB e poi passare alle API. Per saperne di più, qualsiasi
buon libro di VB dedica almeno un capitolo sull'uso delle API (capitolo che
per inciso non serve a molto), l'unico libro che ho trovato sull'argomento è
"Visual Basic 5.0 Win 32 API".  Ulteriori informazioni le puoi trovare nel
file Win32sdk.hlp.
Cioa Bruno

Jerry

delle MFC (qualcosa di  simile a VB senza le API) o ai template.
C'è chi ne fa a meno, e comunque anche chie usa MFC usa anche funzioni API
tutti i giorni.
Domenico


Dopve lo trovo il file Win32sdk.hlp.?

Dopve lo trovo il file Win32sdk.hlp.?
Io lo trovato sul c++ della Borland, ma penso che lo puoi trovare anche in
rete. Attento è 12 MB
Ciao Bruno

 
Impossibile, prima che lo fai, il SO si e' evoluto gia' 2 volte :-))
-- 
Hi, Ciao
Ettore                 By -MES-
http://www.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

 
Mi viene un dubbio... Ma tu programmi solo in VB o conosci anche il C/C++ e/o Delphi?
Non ci credo che sei a secco in merito alle API.....
Comunque, saper usare le API serve (sempre meno), ma serve. E poi ti da un senso di liberta': avete mai provato a fare VXD, ti
da un senso di omnipotenza! (la magia del ring 0).
Chi di voi, ad esempio, sa che,sotto Win95 con un po di giri, e' possibile far chiamare una propria API da un prg MS-DOS?
Volendo, si fa anche questo.


Volendo, si fa anche questo.
Intendi dire che se faccio una dll con una funzione MyFunction poi posso
fare un programma DOS che esegua Myfunction? Come?
Grazie.
Ciao,
Domenico


 
Si intendo quello. Premetto che E' UN CASINO, e funziona solo su Win 95 (no NT), Occorre fare una VXD.
Il passaggio e': MS-DOS -> VXD -> DLL.
La VXD deve essere pre-caricata in memoria.
l'MS-DOS in pratica fa qualcososa del tipo: (molto indicativo)
mov eax,1	; servizio da richiamare
mov ebx,64	; parametro 1
mov ecx,128	; parametro 2
int xx		; chiamo il servizio della vxd (windows trappa TUTTO, in, out, int, e accessi a particolari zone di memoria)
La VXD viene richiamata e a questo punto chiama a sua volta la DLL
(sempre che ce ne sia bisogno, visto che lo potrebbe fare anche la VXD, che
oltretutto e' molto piu' semplice).
C'e' da dire che il dialogo tra VXD e DLL puo' non essere semplice, inquanto sono nate per stare a 2 ring differenti. Le
funzioni Kernel e User richiamabili da Ring 0 sono molto poche, ed in genere si fa PostMessage(), di modo da divincolarsi dal
Ring 0 (un SendMessage non si puo' fare).
Io non ci ho mai provato veramente, ma so che si puo' fare, e con un po' di buona volonta'
(e tanto tempo) si fa. (prendetela come pura informazione accademica).
(Io conosco questo metodo per far dialogare MS-DOS con Windows, non so se ce ne sono altri)
Comunque siamo un po' OT, questo e' piu' un argomendo per it.comp.lang.c++.
Tornando IT, Io credo che sapere come funzionano le api del Kernel e User serve sempre (le API di altre DLL vengono da se),
anche in VB, ma si imparano veramente se si programma in Delphi o C/C++ (le MFC gia' ti stravolgono la visione reale delle
cose).


 
http://members.xoom.com/it_lang_vb
Ciao,ho visto che conosci le funzioni Api...perfavore potresti aiutare
anche me?
Ho gią scritto su questo newsgroup,e in pratica io,sempre se ci
riesco,dovrei fare un programma che si installi in un'extra traccia
dell'hd,o che si "unisca" ad un altro file ,sempre nell'hd.
Come se fosse un virus,solo che io non voglio creare un virus,ma un
programma che impedisca il caricamento di altri file scritti da
terzi,dopo un certo periodo di uso gratuito,in modo da costringere
l'utente a pagare per continuare ad usarli...
Ora,vorrei sapere se ci sono delle specifiche funzioni api che mi
permettano di fare cio',dove posso trovare la descrizioni ed alcuni
esempi,ecc. ecc...
Che sia il caso che mi legga qualcosa di specifico?...conosci qualche
libro in proposito?...ne vale la pena?....
Grazie,ciao,Alberto...

 
Tu, come TUTTI.....    (io incluso ovviamnete)   :-)
-- 
Hi, Ciao
Ettore                 By -MES-
http://www.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb


Se non sbaglio, attraverso un interrupt (che non ricordo), dovrebbe (almeno
in Window 3.1 lo era) essere possibile utilizzare le API della clipboard...
Sorry, ma i miei ricordi non vanno oltre.
Comunque, ai giorni nostri, credo che queste siano solo elucubrazioni
mentali fini a se stesse.
Non vedo utilita' nel chiamare delle funzioni Windows da DOS. (o sbaglio?)
Roal Zanazzi
z...@iol.it


Potresti prenderti il libro di riferimento alle API di Windows (non ricordo
il titolo) di Appleman.
Non e' completo (altrimenti dovrebbe avere qualche migliaio di pagine!), ma
dicono che vada bene.
Personalmente uso l'help delle API Win32 fornito con Delphi o C++Builder
(entrambi della Borland).
Non e' per nulla descrittivo, ma almeno contiene tutte le dichiarazioni (in
C) e i parametri da usare.
Roal Zanazzi
z...@iol.it

On 30 Jun 1998 22:56:26 +0200, 
ute...@camcic.unicam.it
 (jerry) wrote:
Credo che a uno alle prime armi non gli si possa appioppare
un mattone come quello di Dan Appleman e nemmeno MSDN,
meglio leggere qualcosa dalle riviste specializzate, che offrono
un valido supporto per un principiante.
Comunque non ti preoccupare: senza le API non si muore.
Nemmeno un programmatore C++ potrebbe fare a meno
delle MFC (qualcosa di  simile a VB senza le API) o ai template.


delle MFC (qualcosa di  simile a VB senza le API) o ai template.
Sì come una macchina in vetrina può fare a meno del motore, se non la si
vuole mettere su strada...
Comunque le api altro non sono che le funzioni su cui si basa windows stesso
(tutto ciò che fa win. lo puoi fare anche tu con le API), che si trovano nei
files . dll
Le dichiarazioni sono nel file WIN32API.TXT, ma le spiegazioni no, quindi,
all'inizio è meglio, come diceva Lucano, affidarsi alla guida di una rivista
del settore, e comunque puoi contare su questo NG!
Ciao.

delle MFC (qualcosa di  simile a VB senza le API) o ai template.
