Newsgroup: it.comp.lang.c++
Titolo: Domanda provocatoria sulla programmazione in Windows

Ciao a tutti. Un po' di tempo fa chiesi in questo gruppo un tutore per
Visual C++ e in vari mi risposero di farmi vivo di nuovo quando avessi
dato una letta a memoria al caro buon vecchio Petzold. Ora, che sono a
un terzo del libro, mi sto chiedendo se sia davvero necessario e utile
imparare le API per poi passare ad esempio alle MFC. Voglio dire che
mi avevano detto che era come usare l'Assembly e poi passare al C, ma
qui c'e' una differenza grossa. L'Asm e' molto piu' potente del C e
senza quello certe cose non si fanno, le API sono cio' con cui sono
scritte le MFC e io, francamente, non vedo tanto la necessita' di
imparare a usare le API per poi passare alle MFC. A me sembra che
sapere come sono dichiarate a semi-basso livello le window-class nelle
MFC sia utile una cifra molto relativa, dal momento che usero' con
tutta probabilita' sempre quelle data la moltitudine di tipi che mi
sono offerti. Voi che programmate usando MFC -oppure OWL-, le
conoscete bene le API? Che percentuale di programma scrivete
direttamente con le API? Andando avanti nel libro trovero' cose che
non sono implementate nelle MFC oppure capiro' "solo" come sono state
definite? In altre parole: e' necessario sapere le API di cui si parla
in quel libro per scrivere programmi di grafica, di calcolo e simili?
Scusate la serie di domande forse idiota, ma sono un po' angosciato
dal dubbio di star buttando via un sacco di ore a leggere 1000 pagine
nell'ottica di leggere poi Programmare Windows 95 con MFC di Jeff
Prosise -altre 1200 pagine, quasi- con la probabilita' che questo
primo libro non mi serva a nulla. Io sono un amante dell'Assembly e
della programmazione a basso livello con controllo totale della
macchina, pero' sono obiettivo abbastanza da riconoscere che tutta
un'applicazione in Dos non si puo' scrivere in Asm e che quindi
-credo- non tutta un'applicazione Windows si possa scrivere
direttamente con le API senza servirsi di classi predefinite. Quanto
e' sbagliata la mia idea -quella su Win, intendo ;)-?
Ringrazio anticipatamente chi vorra' aiutarmi.
Cordialmente,
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: 
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/SiliconValley/park/7666
Red Hat Linux 4.1 user since 6/16/97
Windows NT 4.0 Server user since 6/27/97
If a railstation is a place where trains stop, what is a workstation?

direttamente con le API senza servirsi di classi predefinite.
l'ho fatto per un paio di anni, e' un po' come scrivere un programma
dos in assembly ma si puo' fare. Il peggio comuque non e' scrivere il
programma ma e' la sua successiva manutenzione tanto che ad un certo
punto ho preferito riscrivere un intero programma con le MFC piuttosto
che continuare a perdere tempo nella manutenzione di quello in C+SDK
Gianpaolo Bottin
- Live Long and Prosper -

 imparare le API per poi passare ad esempio alle MFC.
Uhm. Premettendo che, per gusto personale, eviterei le MFC come la peste
:),
ci sono un paio di considerazioni da fare: in primo luogo, c'e' un certo
insieme
di cose che le MFC non supportano direttamente, per ottenere le quali e'
necessario scendere a livello di SDK. Poi, le MFC stesse sono, in buona
parte,
"ritagliate" a immagine e somiglianza delle api sottostanti, con un
incapsulamento
che definire scricchiolante e' un eufemismo. Conoscere non tanto le
singole api
(figurati, io dimentico perfino la segnatura di itoa, se non la uso da un
po'),
quanto i concetti generali e' quindi, a mio parere, piuttosto utile -  e
da' conto
di molti modi un tantino.. contorti che MFC obbliga a usare.
Infine, se intendi usare professionalmente la tua competenza, puo'
capitarti di
dover mettere la mani in sistemi windows che, con le MFC, non hanno molto
a che fare: avere una buona conoscenza di come funzionano effettivamente
le
cose diventa allora indispensabile.
Just my $.001.
--
dr. Cristiano Sadun - Software Engineering and Consulting
***********Remove NOSPAM from address to reply***********
*********************************************************
"God is Real - unless declared Integer"

direttamente con le API senza servirsi di classi predefinite. 
Stupidaggini. Se vuoi fare *certe* cose le MFC le devi abbandonare.
Per esempio se vuoi applicazioni che siano grandi 3 Kb, invece che 300
Kb. E' poi fondamentale il tuo sentire la programmazione. Se ti piace
avere il controllo, scordatelo di averlo con le MFC. Se avere una
split windows non ti interessa, ma ti interessa invece fare un bel
programma con thread e oggetti di sincronizzazione, allora lascia
perdere le MFC. Se poi intendi creare utility a riga di comando le MFC
sono addirittura deleterie.
Sicuramente l'uso dell'SDK in forma *pura* richiede un tempo di
comprensione piu' lungo. 
E poi, forse, se ti piace l'assembly, potresti trovare piu' congeniale
il C, del C++. Con SDK puoi scegliere, con MFC no.
Infine se vuoi delle classi, usa le STL. Sono meglio e sono standard.
Davide Quack
(Elimina THEDUCK per i reply)