Newsgroup: it.comp.programmare.win32
Titolo: Imparare C++

E' un sacco di tempo che cerco di imparare questo linguaggio ma tutto in
vano.
Ho installato il Visual C++ .NET perchè me lo ha consigliato un mio amico,
ma io non ci sto capendo niente.
Ancora non ho trovato nessuno in grado di darmi una dritta per incominciare
a scrivere anche stronzate come hello world.
Anche perchè non sò neanche che cosa è il programma gestito o non gestito.
Ci sono persone molto vaghe c'è chi mi dice comincia con MFC, chi mi dice
comincia con Win32, c'è chi mi dice usa i programmi gestiti.
CHE DEVO FARE???
Per favore datemi una risposta abbastanza esauriente, e non fatemi leggere
link inutili, ma solo consigli utili per cominciare e filare dritto.
GRAZIE PER AVER LETTO

GRAZIE PER AVER LETTO
Questo e' un punto che sul ng compare spesso ultimamente, soprattutto
perche' con la varieta' delle piattaforme di sviluppo chi vuole
iniziare non sa quale scegliere.
Provo a dirti la mia per come la vedo con un minimo riassunto :-)
- Cosa sono le API Win32 ?
Sono le funzioni del sistema operativo di basso livello, direttamente
accessibili da un programma scritto in C. Con queste crei finestre,
controlli, etc etc. In pratica a questo livello puoi fare TUTTO.
Pro: non hai limiti, puoi creare programmi per ogni piattaforma
windows (da Win95 a XP) con mimini accorgimenti. Molto gratificante
(per me)
Contro: dovendoti gestore ogni singolo aspetto di un programma anche
per cose semplici ("hello world") devi scrivere molto codice,
aumentando la possibilita' di errori. La padronanza di queste funzioni
avviene in tempi lunghi.
Ovviamente puoi usare il C++ e le API WIn32, creando magari oggetti
che al loro interno usano appunto le API
- Cosa sono le MFC ?
Sono le classi scritte da Microsoft per incapsulare le API, si
rivolgono ovviamente a chi scrive codice C++
Pro: e' piu' veloce e facile scrivere codice rispetto al punto
precedente, ci sono alcune funzioni (oggetti OLE/COM) oggettivamente
TROPPO complicati da usare a basso livello, in qs caso le MFC
diventano quasi necessarie.
Contro: sono un malloppo che devi fornire insieme al tuo programma
(anche se spesso sono gia' presenti), stando attento alle versioni
(puo' capitare qualche inconveniente se tu sviluppi con le DLL MFC
versione x e sul sistema trovi la versione y).
- C++.Net
Con la piattaforma .Net Microsoft ha voluto fornire agli sviluppatori
un insieme di classi ancora piu' evoluto e completo rispetto a MFC,
cambiando pero' radicalmente il modo di generare programmi.
Non crei piu' un .exe che viene eseguito direttamente dal sistema
operativo ma un pseudo eseguibile che viene fatto girare all'interno
di una macchina virtuale (come in java) che effettua controlli di
sicurezza e altro (gestione allocazione oggetti, etc.) durante
l'esecuzione.
Pro: creare applicazioni diventa ancora piu' facile
Contro: Un .exe creato per la piattaforma .net richiede il framework
.net installato sul sistema, circa 20 mb di files che vanno ad
installarsi nel sistema (non si tratta piu' di poche dll come in
Visual Basic 6 o MFC). Maggiori risorse richieste per far girare un
programma .Net (mio post in merito con dati alla mano scritto in
passato). Performance almeno per la prima esecuzione del programma
minori rispetto ad un .exe "puro". Piattaforma ancora troppo (per me)
in evoluzione (vedi rilasci di Visual Studio e framework nuovi a
distanza di un anno)
- Conclusioni
Se hai tempo e ti piace l'approccio a basso livello nulla e'
gratificante come l'uso delle API Win32
Se hai poco tempo ma ritieni che il mondo .net sia ancora troppo
giovane impara le MFC, pienamente supportate da Microsoft anche con il
nuovo Visual Studio .net (versione 7.0)
La terza scelta ovviamente consiste nel buttarti nel mondo .Net
Per darti un'idea io sono uno sviluppatore Visual Basic 6 per lavoro e
C++ & API Win32 "pure" per passione. Non intendo passare a C++.Net se
proprio non saro' costretto. Ho invece fatto qualcosa in Visual Basic
.Net che affrontero' pienamente in base a specifiche richieste dei
miei  clienti (che per ora vogliono vb6)
Ciao
Stefano "HappyMan" (Lago Maggiore - NO)
--
Personal Web 
http://www.sgr.info
Email happyman69 (at) 
libero.it

Ti dico come ho cominciato io:
Una volta "imparato" il c++ ho fatto una ricerca su google per trovare dei
tutorial per programmare sotto windows e ho trovato il sito di Alex
http://www.aleax.it/TutWin32/index.htm
 in cui viene anche spiegato un po'
come "funziona" la programmazione sotto windows + altre decine di siti
interessanti tra cui questo:
http://www.multiplayer.it/itaprogaming/linguaggi/c/c.asp
A prima lettura confesso che non capivo poi molto (HINSTANCE, HANDLE... mah)
e
leggendo i contenuti mi sono scaricato il compilatore dev-c++ dal sito
http://www.bloodshed.net/
Dopodiché ho fatto partire il dev-c++ e ho scelto "Windows application"
cosicchè è apparso un file .cpp già scritto che una volta compilato ed
eseguito faceva apparire una semplice finestra "windows"..... EUREKA! Allora
mi son messo ad analizzare il codice, tra l'altro commentato, e ogni volta
che avevo un dubbio (oppure non capivo proprio di cosa si trattassse) andavo
sui vari siti (
http://msdn.microsoft.com/
 compreso) e cercavo di capire.....
poi mi sono scaricato l'help sulle API (non so bene come si chiami) che mi è
superutilissimo e il libro di Petzold che è ancora più utile ed
esauriente..... dopodiché ad ogni ostacolo facevo un passo da queste parti e
chiedevo.... e mi rispondevano...
Ovviamente io sono ancora un superneofita e so fare poco o nulla ma almeno
una strada l'ho imboccata e da qualche parte mi ha portato.... prova così.
CIAO

....ah, io uso le API senza passare attraverso MFC o .Net e "forse" per
imparare a fare i primi passi penso sia meglio....penso.

 ma io non ci sto capendo niente.
Innanzi tutto se vuoi imparare il C++, dimenticati per ora di Windows.
Crea i progetti come applicazioni Win32 console, cosi` non ti dovrai
preoccupare di finestre, messaggi e quant'altro e potrai sbizzarrirti
col C++ standard (o quasi). Poi ti serve un libro sul C++, ad esempio
S.Lippman, "C++ Corso di programmazione".
Quando avrai fatto pratica col C++, potrai iniziare a preoccuparti della
programmazione Windows. Ma questo accadra` fra un po' di tempo. :)
--
Lorenzo