Newsgroup: it.comp.lang.c++
Titolo: Principiante allo sbaraglio

Salve
sono un principiante vorrei cominciare a creare qualche piccolo programmino
ma ho le idee molto confuse . Ho comprato un manuale per principianti:
"Visual c++6 for dummies" ma non ho ancora comprato il programma perche'
sono
indeciso e disorientato fra i tanti.
Avrei qualche domanda:
1) Che differenza c'e' fra Visual Basic e Visual C++6 ??
2) Per creare applicazioni per windows quale e' meglio ??
3) Nel pacchetto Visual Studio e' compreso Visual C++6 ??
4) C'e' molta differenza fra Visual C++5 e C++6 ??
     Cioe' col mio manuale per Visual C++6 riuscirei a programmare anche
Visual C++5 ??
5) Assieme al manuale c'e' un CD rom da cui ho installato alcune programmi
come
    "InstallSheld Express" e "Wise Installation System" e mi sembrano pero'
dei
     programmi a se stanti che non rientrano in visual C++6 . Che sono ??
Scusate se mi sono dilungato eccessivamente ma avevo , ed avro anche in
futuro, un mucchio di dubbi
Grazie anticipatamente a tutti quelli che vorranno rispondere ai miei dubbi.
Ciao
           Paolo

     programmi a se stanti che non rientrano in visual C++6 . Che sono ??
Servono a costruire installazioni. I famosi "setup.exe"
Carlo Pellegrini
### Remove NOSPAMPLEASE to answer ###

usando le API. Puoi compilare progetti in C usando Visual C++.
A mio avviso non č un problema tanto di linguaggio, quanto di modello di
programmazione. Una volta compreso il paradigma event-driven e familiarizzato
con l'SDK, il resto č solo una conseguenza. Il C, di per sč, nell'aiutarti a
raggiungere questa conoscenza di base non č piů d'aiuto di un C++, ad esempio.
AB
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Baruzzo
Via Circonvallazione, 26
Muzzana del Turgnano (UD) - Italy
e-mail: 
andrea....@ud.nettuno.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Vero. Mi spiego meglio: il linguaggio che piů ti _costringe_ ad imparare come
funziona Windows, č il C. (sempre IMHO)  :-)


...

Potresti fare qualche esempio a sostegno della tua tesi? Forse a me sfugge
qualcosa...
grazie.



Per come la vedo io, ed è un'opinione personalissima, se il linguaggio di
programmazione ti nasconde, ad esempio, l'implementazione del message loop, non
capirai mai perchè effettuando un SendMessage() invece di un PostMessage()
all'applicazione all'interno di un suo gestore di evento, questa si inchioda.
Se scrivi tu stesso il message loop, capisci cosa sta accadendo.
Ma è solo un'opinione.


Carlo Pellegrini
Ah, ok. Però questo eliminerebbe VB e gli ambienti RAD in genere (poco importa
se comunque forniscono la possibilità di chiamare esplicitamente le API: il
fatto è che non incoraggiano a farlo). Però metterei C e C++ sullo stesso piano.
Non mi viene in mente niente che sia proprio del C e solamente del C che mi sia
utile a comprendere Windows.
L'unico aspetto della vicenda, in tal senso, è che Windows contiene moltissimo
codice C e, quindi, il C come linguaggio ti permette di dialogare in modo
diciamo "nativo" col sistema operativo. E', tuttavia, mia personale convinzione
che se Windows fosse stato progettato ad oggetti e fosse stato realizzato in C++
oggi avremo per le mani un sistema operativo migliore.


oggi avremo per le mani un sistema operativo migliore.
Verissimo! Ma non viviamo in un mondo perfetto... :-(
Ciao.


Ma è solo un'opinione.
Ma non e` il linguaggio di programmazione a nasconderti queste cose, ma
i framework che eventualmente decidi di usare (MFC, OWL, VCL ecc. ecc.)
che per inciso puoi sempre spulciare per capire come sono fatte le cose
(anche se farsele da soli e` meglio).
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------



Gia`... In effetti il tentativo di fare in C cio` che e` proprio del C++
(ovvero l'overloading) ha dato origine ad una API quanto meno
eccessivamente complessa. In particolare mi riferisco a quelle
api il cui comportamento (in termini di funzione svolta) e` legato
al valore di un certo parametro. Mi spiego meglio:
in molte api l'interpretazione di un certo parametro (e quindi cio` che
effettivamente essa svolge) e` legato al valore assunto da un
altro parametro... In C++ avremmo invece avuto semplicemente
piu` versioni overloaded della funzione e con una signature
molto piu` semplice ed immediata.


"dall'interno" che ti serve per imparare come funziona il SO.
D'accordo, pero` non confondiamo i framework col linguaggio...
I framework li possiamo trovare in qualsiasi linguaggio... il fatto che
negli ultimi anni il C++ stia assumendo una importanza sempre
maggiore e la continua lotta tra i produttori di compilatori, tende
a "velare" la cosa agli occhi dell'utente medio. Faccio notare come
nei post che mediamente trovo sul NG si confonda un ambiente di
sviluppo (VC++, BCB...) con il linguaggio su cui esso si basa.


sviluppo (VC++, BCB...) con il linguaggio su cui esso si basa.
Non discuto. E' tutto condivisibile. Se però hai notato, il Thread è cominciato
con una domanda sul miglior linguaggio per imparare la programmazione Win.
Purtroppo, al S.O. non si accede in in forma object-oriented, come ammette
Andrea e come concedi anche tu, ma tramite le API.
Se si vuole usare la potenza del C++, bisogna per forza mascherarle con un
framework, perdendo parte della efficacia "didattica" che l'utilizzo delle
semplici API consente di ottenere.
Del resto, per i progetti "veri" utilizzo anche io il C++, del quale apprezzo
potenza e pulizia. Ad un newbie, però, non mi sento di consigliare subito tale
linguaggio. 


linguaggio. 
Questo e` tutto un altro discorso, neanche io come ho piu` volte 
ribadito consiglierei il C++ ad un newbie che non so ancora
programmare.
Paolo
P.s.
   Non vorrei comunque che questa diventasse una nuova guerra
   di religione senza alcun vantaggio per alcuno!


semplici API consente di ottenere.
Oddio, si` e` essenziale per chi deve programmare su piattaforma Windows
conoscere almeno le API base ed il meccanismo di messages su cui si basa
il funzionamento delle applicazioni, anche se dopo lui/lei usano un qualche
framework che fa da wrapper sopra le API, dato che spesso :
1. e` piu` semplice fare una chiamata alle API, invece di scrivere
   20 righe di codice in cui tiri in ballo 5-6 oggetti del framework
2. puo` succedere di non avere la classe precotta a disposizione che non
   incapsula le funzionalita` richieste
3. e` necessario specializzare ulteriormente i comportamenti di qualche
   classe
Tuttavia non credo che vi sia ancora al mondo qualche pazzoide che scrive
applicazioni reali per piattaforma Windows basandosi esclusivamente su C e API :
la manutenibilita` e riusabilita` di quanto scritto e` inversamente
proporzionale al numero di righe di codice, ed il mal di testa e` assicurato.
-- 
Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass

oggi avremo per le mani un sistema operativo migliore.
Mah ... io per le mani ho un sistema operativo migliore il cui kernel e`
scritto in C ;-).
Sbaglio o il kernel del BeOS e` stato scritto in C++ e quindi anche le API
e le librerie di sistema sono codice C++ ?



Immagino ti riferisca a unix - linux.
Mentre affermavo quanto sopra, pensavo soprattutto alla mancanza di
incapsulazione che c'è nel C e a quale sia stato l'impatto sul design del S.O.
Come ho detto altre volte, però, il linguaggio è solo una parte della storia.
Questo non toglie, comunque, il fatto che certi stili di programmazione siano
più
naturali con alcuni linguaggi e meno con altri (vedi l'es. di Paolo Marotta sul
overloading).
