Newsgroup: it.comp.lang.c++
Titolo: mfc o api win32??

Volevo iniziare a programmare con Visual C++ 6 e ho visto che ci sono due
metodologie diverse per farlo..una con le api di win32 piuttosto a basso
livello e una con le mfc che dovrebbero semplificare di brutto le cose.
Cosa mi consigliate e quali tutorial, libri, guide (anche online) potrei
consultare per imparare decentemente?
Premetto che ho conoscenze c e un pň del c++.
Grazie
Ciao
Alessio

 Premetto che ho conoscenze c e un pò del c++.
Premetto che siamo OT.
In secondo luogo ti serve piu' di un po' di conoscenza del C++ per usare le
MFC e una buona conoscenza del C per usare le API.
Le API sono certamente piu' a basso livello. Tuttavia ho dei dubbi che le
MFC semplifichino "di brutto" le cose.
Le MFC sono macchinose, difficili e pesanti. Per usarle inoltre devi
conoscere bene il C++: fanno largo uso di funzioni virtuali, polimorfismo,
ereditarieta' etc...
Le MFC velocizzano, ma non semplificano... Ovviamente se tu usi i wizard e
spari a caso qualcosa combini... in questo senso semplificano, ma ti
assicuro che non arrivi lontano.
In conclusione MFC semplificano solo alcune cose, ed alcune parti della
programmazione win32.
Le API, una volta studiate sono piu' semplici. Inoltre ti fanno capire il
funzionamento, mentre le MFC meno.
Le MFC sono delle classi incapsulano le win32 APIs. In pratica con le MFC
accedi alle API in modo indiretto.
Vedi tu cosa imparare. Io quasi quasi inizierei con un pochino di API, poi
passerei alle MFC. Nel frattempo imparati BENE il C++, altrimenti le MFC non
le impari ;-)
Il miglior libro sulle APIs e' il Petzold, programmare windows.
Il miglior libro sulle MFC e' il Prosise.
Tommy

 Il miglior libro sulle MFC e' il Prosise.
Mi dai le coordinate del Prosise: casa editrice, nome , eventuale e-book?
Grazie
Francesco

 Mi dai le coordinate del Prosise: casa editrice, nome , eventuale e-book?
Programming Windows With MFC 2nd edition
Jeff Prosise
Microsoft Press
ISBN: 1572316950
Per la versione italiana non so dirti. Io ho quella inglese. Quasi
sicuramente esiste anche in Italiano pero'!
Tommy

 
Qui sei OT, prova su it.comp.programmare.win32
Comunque perche' Visual C++ 6 e non 7 ?
Impara sicuramente le API, almeno a grandi linee.
Piuttosto di MFC forse e' meglio .NET
Per API il Petzold e' buono per l'interfaccia utente, meno per la 
gestione di i/o file thread processi e altre cose piu' di kernel.
In ogni caso MSDN come documentazione e' ottima.

Chiedo scusa per l'OT...per uno che parte da zero, non è più semplice
utilizzare uno dei tanti framework multipiattaforma (ne esistono di tutti
i tipi, in C, in C++ strutturato, in C++ ad oggetti...) invece di
utilizzare le API o le MFC con tutte le difficoltà che introducono in
quanto molto a basso livello, e restare comunque ancorati alla
piattaforma per sempre? Esistono molti framework ben fatti, gratuiti e
che si basano direttamente sulle API, quindi veloci e stabili...ad
esempio, c'è il FOX ToolKit (
www.fox-toolkit.org
), che a mio avviso è 
progettato molto bene!
Qualcuno l'ha mai utilizzato e mi può dare un parere? 
Chiedo di nuovo scusa per l'OT

 introducono in quanto molto a basso livello,
Ecco, non mi trovo invece d'accordo con questa affermazione. Non credo le
API o le MFC siano per forza piu' difficili di FOX o qualsiasi altro sistema
multipiattaforma...  A dire la verita' FOX mi pare moooolto simile ad MFC:
Ecco cosa dice l'introduction:
#include "fx.h"
Ops, mi ricorda afx
// Event Handler Object
  class ScribbleWindow : public FXMainWindow {
    // Macro for class hierarchy declarations
    FXDECLARE(ScribbleWindow)
Umh, ereditiamo la nostra finestra da una classe finestra, esattametne come
MFC.
public:
    long onPaint(FXObject*,FXSelector,void*);
    long onMouseDown(FXObject*,FXSelector,void*);
    long onMouseUp(FXObject*,FXSelector,void*);
    long onMouseMove(FXObject*,FXSelector,void*);
    long onCmdClear(FXObject*,FXSelector,void*);
    long onUpdClear(FXObject*,FXSelector,void*);
Ok, mettiamo i metodi che vogliamo usare....
E esattamente come con MFC li mappiamo!!!!
FXDEFMAP(ScribbleWindow) ScribbleWindowMap[]={
//________Message_Type_____________________ID_______________Message_Handler_
______
    FXMAPFUNC(SEL_PAINT,
ScribbleWindow::ID_CANVAS,ScribbleWindow::onPaint),
    FXMAPFUNC(SEL_LEFTBUTTONPRESS,
ScribbleWindow::ID_CANVAS,ScribbleWindow::onMouseDown),
FXMAPFUNC(SEL_LEFTBUTTONRELEASE,ScribbleWindow::ID_CANVAS,ScribbleWindow::on
MouseUp),
    FXMAPFUNC(SEL_MOTION,
ScribbleWindow::ID_CANVAS,ScribbleWindow::onMouseMove),
    FXMAPFUNC(SEL_COMMAND,          ScribbleWindow::ID_CLEAR,
ScribbleWindow::onCmdClear),
    FXMAPFUNC(SEL_UPDATE,           ScribbleWindow::ID_CLEAR,
ScribbleWindow::onUpdClear),
    };
Wow, le "parole chiavi" sono diverse, ma il principio e' praticamente lo
stesso di MFC, pare una copia. Una copia con il vantaggio di essere
multipiattaforma e per questo motivo anche altri svantaggi, ma....  ripeto
non pensare che MFC=basso livello (non e' a basso livello) e = piu'
difficile di sistemi multi piattaforma, fox avra' meno funzioni  e
caratteristiche, ma quelle che ha mi paiono complesse uguali!
Il mio parere e'....
- Se il tuo intento primario e' fare applicazioni windows studia MFC,
Directx et....
- Se il tuo intento primario e' fare applicazioni multipiattaforma studia
pure uno di questi sistemi.
Ricordati anche che nel mondo del lavoro FOX e' sicuramente meno usato delle
MFC.....
Tommy

 Tommy

 di scegliere su che tipo di calcolatore vuole farlo girare
Si, non me ne parlare..... e' per questo che tutte le aziende stanno
incominciando ad usare Java.
W il C++ !
Tommy

 Conosci qualche BUON Tutorial o e-book?
Il prosise esiste in versione ebook (chm), ma non e' free (e' nel CD
allegato al libro).
Tutorials.... umh, buoni sulle MFC no, se devo essere sincero.
Tommy

 assicuro che non arrivi lontano.
[OT]
Solo per segnalare che sono in completo disaccordo con questo paragrafo. 
Per esperienza.
-- 
Luc.

 Premetto che siamo OT.
...quindi sarebbe stato il caso di spostarsi su
it.comp.programmare.win32 . Accendere le quattro frecce non elimina il
divieto di sosta.
Ciao,
Nicola

 divieto di sosta.
Si, grazie.... Il mio server bt non mi legge tale newsgroup... Non me lo da
nelle lista nei NGs....
Ad ogni modo scommetto che se devi fare una scappata di un secondo e non
c'e' parcheggio, metti le quattro frecce, scendi di corsa, dici quello che
devi dire e torni di corsa alla macchina. Se stai via 8 secondi in totale ed
il vigile ti vuole fare la multa, scommetto che cerchi di spiegargli la
situazione, no?!? Poi se non la vuole intendere, ovvio, non rompi piu' di
tanto (non sopporto i maleducati con le forze di polizia) e ti fai fare la
multa.
In pratica hai ragione ma....
Tommy

 Tommy

...

Quando tutta la strada e' intasata da gente che fa scappate di 8
secondi (o piu', hai visto il thread?) non ho speranza di poterla fare
io ma mi tocca parcheggiare a chilometri di distanza. La durata del
comportamento maleducato non ne altera l'essenza.
Ciao,
Nicola

Oddio!!
Boccaccia mia statte zitta!
Ho scatenato un putiferio e scoperto pure di essere OT ..approposito
letteralmente che vuol dire OT ??
Ciao a tutti!

 wrote

Off Topic.
Tommy