Newsgroup: it.comp.programmare.win32
Titolo: MFC? API?

Ciao,
ho iniziato da poco col C++ e sto cercando di capire come si programma la
parte grafica.
Se ho capito bene tutto ruota attorno alla libreria MFC (almeno per windows)
ma le API (a parte degli insetti...) cosa sono??
Esiste la reference o una guida in italiano di questa roba?
Un saluto e grazie per l'aiuto!

 wrote in
news:kcHQ8.46539$
Kt3.1...@twister2.libero.it
: 

Per API (Application Programming Interface, se la memoria non mi 
tradisce) si intende l'insieme delle funzionalità che il sistema 
operativo mette a disposizione delle applicazioni.
MFC è un "wrapper" che permette di realizzare applicazioni 
utilizzando un modello a oggetti in modo (almeno teoricamente) più 
semplice e rapido.
Oltre a MFC esistono altri wrapper, sia "generalisti" (cercano di 
rimappare tutte o quasi le funzionalità delle API), sia limitati ad 
alcune funzionalità.
Personalmente credo che sia utile capire i meccanismi base del 
sistema operativo prima di affrontare lo sviluppo di applicazioni 
complesse e, IMHO, utilizzare direttamente le API può essere un buon 
modo di imparare.
Inoltre ritengo il modello di MFC un po' troppo rigido e la loro 
implementazione un po' datata (risalgono a Visual C++ 1.0) rispetto 
all'attuale standard C++ (non utilizzano i template, ad esempio).
Per realizzare applicazioni con interfaccia utente o COM preferisco 
utilizzare ATL (ottimo per utilizzare COM) e WTL ("estensione" di ATL 
per l'interfaccia utente e le applicazioni), mentre per applicazioni 
senza interfaccia utente o molto semplici preferisco utilizzare 
direttamente le API.
Puoi trovare un ottimo tutorial sulle API in italiano realizzato da 
Alex Martelli (non ho l'indirizzo preciso sottomano, ma una ricerca 
con "Alex Martelli API tutorial" su google dovrebbe bastare).
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

 Un saluto e grazie per l'aiuto!
Per le API, se vuoi farti davvero del male c'è "Programmare Windows 5a 
Edizione" di Charles Petzold, ma non te lo consiglio se non vuoi 
approfondire più di tanto la questione.
In internet c'è il sito di Alex Martelli: 
http://aleax.supereva.it/
 .
Leonardo

 all'attuale standard C++ (non utilizzano i template, ad esempio).
2 piccole note: risalgono ancora a prima, precisamente a "Microsoft C /
C++ compiler 7.0", ovvero l'ultima versione di quel compilatore prima di
VC. E nelle ultime versioni esistono alcune classi template, vedi CArray
e altre.

A questo punto, mi intrometto io con delle domande:
Tutto ciň che si puň fare con le API si puň fare con le MFC ?!
Per chi sta iniziando la programmazione per windows, cosa conviene
studiare, l'utilizzo delle API o delle MFC ?
Altra domanda:
Si possono utilizzare le MFC anche su compilatori diversi da VC++ ?
Grazie!
NM

 Si possono utilizzare le MFC anche su compilatori diversi da VC++ ?
Questo non lo so...
Ciao!

 Questo non lo so...
Tericamente si, dipende dal compilatore che usi. Ad esempio io ora ho 
sottomano la documentazione del Borland C++ 5.02 e c'è scritto:
"MFC - a set of classes (Microsoft foundation classes) that you can use 
to code Windows applications. Borland C++ supports MFC versions 3.x and 
4.x."
Anche se BCC fa riferimento particolare alle sue OWL, cioè librerie 
creae da Borland che + o meno hanno lo stesso approccio delle MFC
Leonardo

sottomano la documentazione del Borland C++ 5.02 e c'è scritto:
Wow, un altro utilizzatore del glorioso BC++ 5.02 ? 
Grande compilatore...peccato che Borland l'abbia lasciato in favore
del Builder.
Stefano "HappyMan" (Lago Maggiore - NO)
--
Personal Web 
http://www.sgr.info
Email 
happyman...@libero.it
 [Togliere nospam per scrivermi]
Salsa Web 
http://happyman.n3.net
 [Foto salseri/e & I.A.B.L.A. Ring]

 Wow, un altro utilizzatore del glorioso BC++ 5.02 ? 
Se è per questo nel mio istituto tecnico ancora usano il 3.1 :P
Leonardo

> Se è per questo nel mio istituto tecnico ancora usano il 3.1 :P
Beati voi... Noi su pentium 3 800 dobbiamo usare Turbo C++ 3... Meno
male che chi vuole come editor di testi si può usare anche VC (leggi: me
;-)

 ;-)
io avevo semplicemente scaricato e installato il Borland C++ 5.5 sui
computer che utilizzavo :)
-- 
Rhymes
rhy...@myself.com
" ride or die "

 
io per ripicca ho installato il bc++ 5.02, djgpp, lcc e vari editor tipo 
edit+ su tutti i pc che mi capitavano a tiro ...:)

 edit+ su tutti i pc che mi capitavano a tiro ...:)
Beh io non l'ho fatto per ripicca ma semplicemente perchč TC++ non mi č
mai piaciuto e poi non sa nemmeno cosa sia lo standard :) Anche se
purtroppo a scuola non insegnano nemmeno lontanamente il C++...per vari
motivi :)


 
Difatti i corsi di programmazione in Win32 e di C++, dopo averne fatto 
esplicita richiesta a qualche prof, me li sono propinati da solo e 
quest'anno come tesina d'esame porto roba che certi insegnanti neanche 
se la sognano, pur essendo concetti neanche troppo approfonditi...
(stiamo diventando un po' OT o sbaglio?)
Leonardo

 semplice e rapido.
ed in tutto questo come si collocano le directX ?
ciaociao

, 
mtes...@libero.it
 says...

le DirectX sono delle API :)

 le DirectX sono delle API :)
e quindi il loro utilizzo è piuttosto difficile ?
inoltre mi chiedo, perchè tutte le API di Win non vengono racchiuse in una
sola raccolta (ad esempio DirectX)?
e che altre raccolte di API non sono incluse in Direct X?
ciaociao

 
le DirectX servono per lo svuluppo di grafica 2d-3d, e non sono parte 
integrante del sistema operativo (Win32 usa nativamente le GDI). Infatti 
  le DirectX sono installabili a parte, in caso tu voglia utilizzare 
qualcosa del tipo Maya o 3ds Max, oppure semplicemente far funzionare un 
gioco sviluppato con esse.

 le DirectX servono per lo svuluppo di grafica 2d-3d, e non sono parte
questo non è vero, visto che contengono anche librerie per gestire altri
aspetti...quello che mi chiedevo: sono API di basso livello del SO oppure
sono un interfaccia più generica e semplice da usare di queste?
ciaociao

 sono un interfaccia più generica e semplice da usare di queste?
sono API, solo che sono dedicate aa quel preciso utilizzo e quindi in 
teoria dovrebbero semplificarti la vita...