 
View Full Version : [VC++] semplice applicazione (non mi muovo)
Dr Nick Riviera
12-06-2007, 20:54
Sto cercando di imparare il vc++, ho comprato un libro in libreria e sono arrivato al punto che dovrei bene o male riuscire a fare delle semplici applicazioni.. ma credo che questo linguaggio sia la non intuibilità fatta persona..
In pratica l'idea era quella di far inserire dei numeri da tastiera in alcune edit box, e tramite un bottone far restituire il valore (ad esempio somma) in una label..
Ho impostato i vari ID, ho aggiunto le variabili di ogni casella editbox (mettendole come int).. ma non so più andare avanti, il libro fa dgli esempi ma oltre a quelli non va oltre e se uno deve fare qualcosa che esula da quelli come deve fare?! Non rispondetemi che deve fare delle prove perchè io sono disponibilissimo a fare tutte le prove possibili, il problema è... cosa provo se non so nemmeno cosa c'è e cosa fa?! :doh: 
Non ditemi neanche di passare al C# :D  perchè ho già provato ma se non ho basi di niente quello risulta ancora più difficile (almeno per me)..
Help.. non ho idee.. 15 euro di libro a mio avviso buttate! :cry: :mad:
Se mi permetti, prima di "buttarti" sulle interfacce grafiche, ti consiglio di iniziare con la programmazione più semplice e "tradizionale" ... semplici applicazioni console che usano le funzioni standard di I/O.
E comunque se vuoi lavorare con le interfacce grafiche, specifica bene con quale framework intendi lavorare: API Win32? MFC? altro?
Dr Nick Riviera
12-06-2007, 21:49
Ciao, hai ragione, il framework non lo avevo specificato.. MFC..
Utilizzo Visual C++ 6.
Per quanto riguarda le applicazioni con console ho già provato a suo tempo e sinceramente non noto alcuna somiglianza ne utilità.. sicuramente parlo per ignoranza.. ma prima ad esempio usavo cin e cout e qui non ne vedo l'ombra..
Non so andare avanti.. scusate l'incazzatura se può travisare ma effettivamente sono incazzato con me stesso :sofico:  e con questi testi che vendono per gente già imparata... :mad: 
:D
Ciao, hai ragione, il framework non lo avevo specificato.. MFC..
Utilizzo Visual C++ 6.
Per quanto riguarda le applicazioni con console ho già provato a suo tempo e sinceramente non noto alcuna somiglianza ne utilità.. sicuramente parlo per ignoranza.. ma prima ad esempio usavo cin e cout e qui non ne vedo l'ombra..
Non so andare avanti.. scusate l'incazzatura se può travisare ma effettivamente sono incazzato con me stesso :sofico:  e con questi testi che vendono per gente già imparata... :mad: 
:D
ma dove ti sei bloccato?
eventualmente per vedere qualche risultato in debug usa le funzioni di TRACE, per vedere se ti stai muovendo nella giusta direzione.
la trace funziona come una banale printf:
TRACE1("%d", var);
ovviamente esiste anche la TRACE2 e TRACE3
che tu usi MFC o API Win32 a dire il vero come è ben noto non fa molta differenza :D (almeno per quello che devi fare tu)
Dr. Nick Riviera, per prelevare via MFC il contenuto di un controllo nativo della classe EDIT appartentente ad una dialog box usa questo metodo:
http://msdn2.microsoft.com/en-us/library/c7t43w0s(VS.80).aspx
EDIT - quello ovviamente serve a prelevare un int (fa il parsing della stringa di testo contenuta nell'edit e lo traduce), ma se invece vuoi la stringa allora usa quest'altro:
http://msdn2.microsoft.com/en-us/library/xcws9sbs(VS.80).aspx
però lasciati dire che stai usando una versione antidiluviana... non so se hai capito che quella roba risale al 1998 :D
Dr Nick Riviera
12-06-2007, 22:24
Il problema è che con tutta la voglia che ci posso mettere per studiare.. non ho i mezzi giusti.. con questo libro (come con altri) capisco esempi fini a se stessi.. ma poi nella pratica appena provo a fare qualcosa non so cosa devo fare.. perchè cambiano diverse cose.
Nel libro si inserisce una stringa e si restituisce rovesciata o nella stessa box o in una message box, ma se io voglio inserire un intero in ogni box, lavorarli (somma, moltiplicazione, ecc..) e restituire il risultato in un label.. non so dove mettere le mani.. anche perchè vanno convertiti da interi a stringhe sennò mi dà errore, non so come comandare per farlo apparire in quella label, ecc..
Qua ho capito chiamate tipo GetDlgItem, ecc.. (solo perchè le vedo collocate in un esempio) ma non riesco a fare niente.. solo seguire esempi, ripeto, fini a se stessi..
:(
Dr Nick Riviera
12-06-2007, 22:25
che tu usi MFC o API Win32 a dire il vero come è ben noto non fa molta differenza :D (almeno per quello che devi fare tu)
Dr. Nick Riviera, per prelevare via MFC il contenuto di un controllo nativo della classe EDIT appartentente ad una dialog box usa questo metodo:
http://msdn2.microsoft.com/en-us/library/c7t43w0s(VS.80).aspx
però lasciati dire che stai usando una versione antidiluviana... non so se hai capito che quella roba risale al 1998 :D
Ora provo a vedere in quel link..
Lo so che risale al 1998, ma è l'unica che ho trovato buona... e a regola è quella sempre utilizzata..
Che cambia nelle nuove versioni? :confused:
ma dove ti sei bloccato?
eventualmente per vedere qualche risultato in debug usa le funzioni di TRACE, per vedere se ti stai muovendo nella giusta direzione.
la trace funziona come una banale printf:
TRACE1("%d", var);
ovviamente esiste anche la TRACE2 e TRACE3 ed anche TRACE semplice, che prende quanti argomenti vuoi e si comporta praticamente come una printf che stampa al debugger
Ora provo a vedere in quel link..
Lo so che risale al 1998, ma è l'unica che ho trovato buona... e a regola è quella sempre utilizzata..
Che cambia nelle nuove versioni? :confused: un PSDK aggiornato (a quello del '98 mancano molte funzioni; credi che lo sviluppo di Win32 si sia fermato da 10 anni? :)), una versione più recente di MFC stesso, un compilatore che produce codice più efficiente del (mediamente e a detta di Microsoft) 20%, nonché ovviamente ultimo ma non per importanza il .NET e le Windows Forms. queste ultime poi a te potrebbero molto semplificare la vita, ma hai detto che C# ti fa schifo :D
lasciati dire che C# è oggettivamente e senza esagerazioni 10 volte più semplice del C++ (comincia a dire che ti sbarazzi dei puntatori...), ma se proprio non desisti allora sappi che è possibile usare le Windows Forms anche da Visual C++, altrimenti non te le avrei citate.
Ora provo a vedere in quel link..
Lo so che risale al 1998, ma è l'unica che ho trovato buona... e a regola è quella sempre utilizzata..
Che cambia nelle nuove versioni? :confused: e poi scusa, come sarebbe a dire che è l'unica buona che hai trovato?? dove l'hai trovata? :D
diciamo che dovresti cercare di trovare la versione 2005 esattamente da dove hai "trovato" la 6 :asd:
Dr Nick Riviera
12-06-2007, 22:33
Scusate ragazzi ma state correndo troppo per i miei gusti.. :sofico: .. io quella roba non so nemmeno dove collocarla e se va modificata.. ho letto più di 120 pagine di un libro apposito per il vc++ 6 (me ne mancano circa 600... :fagiano: ), sono arrivato ai controlli principali (bottone, edit box, radio button, check box, label, ecc..) ma davvero, anche se penso di aver capito, come provo a mettere le mani e cambiare qualcosa mi accorgo di aver capito solo l'esempio.. niente di più e forse qualcosa di meno...
Lo spaccherei questo libro.. e penso che anche con altri mi cambierebbe ben poco... :mc:
Dr Nick Riviera
12-06-2007, 22:36
e poi scusa, come sarebbe a dire che è l'unica buona che hai trovato?? dove l'hai trovata? :D
diciamo che dovresti cercare di trovare la versione 2005 esattamente da dove hai "trovato" la 6 :asd:
Nella versione 2005 ho il C#.. passo giornate solo a installare cose a me inutili dato che non so come usarle..
Il C# non lo voglio manco vedere.. dato che tanto o quello o il vc++ per me è indifferente in termini di comprensione (non capisco ne quello ne quell'altro) ma almeno ho questo libro (inutile come quello che l'ha scritto :mad: ) e non vorrei aver buttato 15 euro e una settimana di prove e letture per niente..
@vizzz:
ed anche TRACE semplice, che prende quanti argomenti vuoi e si comporta praticamente come una printf che stampa al debugger credo di aver scritto una cavolata... O_o'
non uso MFC da un bel po' e ricordavo che TRACE fosse mappata su una funzione che prende l'ellissi come ultimo parametro (funzione var args), ma ho ricontrollato in MSDN e mi pare di capire che non è così...
Dr Nick Riviera
12-06-2007, 22:39
...per il c# ho detto così anche perchè ho trovato solo documentazione in inglese, e dato che il c++ e il vc++ non sono la stessa cosa (almeno per quanto ho visto io).. immagino che anche il c# e il vc# non lo siano.. quindi di libri in italiano sul vc# non ne ho trovati, solo documentazione in inglese sul c#.. capisci bene che se non capisco le cose in italiano.. figurati in inglese..
Nella versione 2005 ho il C#.. passo giornate solo a installare cose a me inutili dato che non so come usarle..
Il C# non lo voglio manco vedere.. dato che tanto o quello o il vc++ per me è indifferente in termini di comprensione (non capisco ne quello ne quell'altro) ma almeno ho questo libro (inutile come quello che l'ha scritto :mad: ) e non vorrei aver buttato 15 euro e una settimana di prove e letture per niente.. be' insomma, come ti sei procurato Visual C++ 6 Professional (suppongo) dovresti procurarti lo stesso prodotto ma in versione 2005 :p
nota che ci sarebbe Visual C++ 2005 Express gratuito, ma non include l'AppWizard e il ClassWizard di MFC (e neanche il resource editor se è per questo), e senza di quelli penso che sei morto :D
...per il c# ho detto così anche perchè ho trovato solo documentazione in inglese, e dato che il c++ e il vc++ non sono la stessa cosa (almeno per quanto ho visto io).. le differenze tra il C++ standard e il C++ di Microsoft sono talmente sottili che almeno per ora penso proprio che tu non te ne debba minimamente preoccupare...
immagino che anche il c# e il vc# non lo siano.. questo non avrebbe proprio senso: C# è uno standard di Microsoft :)
quindi di libri in italiano sul vc# non ne ho trovati, solo documentazione in inglese sul c#.. capisci bene che se non capisco le cose in italiano.. figurati in inglese.. al di là di tutto ti consiglio caldamente di consultare documentazione sempre rigorosamente in lingua originale, e se non ci riesci facci l'abitudine (tanto è facile: non si tratta di inglese, ma di microlingua tecnica; se non riesci a leggere quella allora dovessi leggere un romanzo in inglese che faresti? :))
Dr Nick Riviera
12-06-2007, 22:46
Ma è il visual c++ 2005 Express Edition o è la versione 8?
Il Visual C++ 2005 Express se è gratuito allora come si deve chiamare?! se sia il gratuito che il trial si chiamano 2005.. allora me lo fanno apposta..
Dr Nick Riviera
12-06-2007, 22:50
al di là di tutto ti consiglio caldamente di consultare documentazione sempre rigorosamente in lingua originale, e se non ci riesci facci l'abitudine (tanto è facile: non si tratta di inglese, ma di microlingua tecnica; se non riesci a leggere quella allora dovessi leggere un romanzo in inglese che faresti? :))
Eh lo so, ma la mia microlingua tecnica è stata per anni e lo è tutt'ora riferita al campo della biologia, chimica, biotecnologia, genetica, ecc.. di programmazione informatica non ho basi (e a sto punto me ne convinco fermamente) per cui molti termini ed espressioni mi risultano difficili da comprendere anche in italiano..
Il problema dei testi è che sono fatti per gente che sa già qualcosa.. ci vorrebbe un testo per bimbi scemi.. che poi secondo me sarebbe anche la meglio per avvicinare più persone a un determinato campo..
Dr Nick Riviera
12-06-2007, 22:57
Che poi.. se ci penso su, sarei anche invogliato a studiare il C# che avevo già iniziato a guardare.. ma se poi penso che non trovo libri e che ci vuole il proprio framework mi demoralizzo.. perchè se uno non ha installato il framework per il .NET l'applicazione non va.. e allora che le faccio a fare?! Pochi hanno il framework installato perchè pochi hanno la necessità del c# a parte chi è del settore, programmatori, ecc.. Ed ecco quindi che ritorno al vc++.. e allora sì che mi ridemoralizzo.. perchè è arabo...
la express di visual c++ 2005 non permette di creare applicazioni MFC da quanto ho potuto vedere.
vc++ 6.0 è ancora usato pesantemente grazie anche ai vari service pack rilasciati(io lo uso tutt'ora al lavoro)...secondo me continua così già che sei a buon punto, da quanto ho visto il passaggio a versioni più recenti di visual studio non comporta cambiamenti drastici rispetto a quello su cui hai messo le mani ora.
tomminno
13-06-2007, 00:25
le differenze tra il C++ standard e il C++ di Microsoft sono talmente sottili che almeno per ora penso proprio che tu non te ne debba minimamente preoccupare...
A vedere le tonnellate di codice che scrive automaticamente il compilatore non si direbbe. 
Comunque non si può confrontare la linearità ad esempio delle wxWidgets (e ancora meglio delle QT) rispetto alle MFC.
Tanto per dire stamani ho perso quasi una mattinata a cercare di cambiare il background dei pulsanti, solo perchè questi non rispondono al messaggio OnCtlColor, ho praticamente dovuto scrivermi un controllo custom che reimplementa la ruota.
Con le wxWidgets basta un banale SetBackgroundColor.
 al di là di tutto ti consiglio caldamente di consultare documentazione sempre rigorosamente in lingua originale, e se non ci riesci facci l'abitudine (tanto è facile: non si tratta di inglese, ma di microlingua tecnica; se non riesci a leggere quella allora dovessi leggere un romanzo in inglese che faresti? :))
Non si può programmare senza conoscere i pur minimi rudimenti di inglese necessari per leggersi la documetazione.
Cercando con google ad esempio spesso riporta articoli MSDN tradotti automaticamente in italiano, assolutamente incomprensibili, al versione inglese risulta più chiara.
ahahha gli articoli msdn tradotti in automatico in italiano mi fanno veramente piegare dal ridere.
confermo con mfc devi derivare anche solo il controllo CStatic per modificare il font...una figata
tomminno
13-06-2007, 00:41
la express di visual c++ 2005 non permette di creare applicazioni MFC da quanto ho potuto vedere.
vc++ 6.0 è ancora usato pesantemente grazie anche ai vari service pack rilasciati(io lo uso tutt'ora al lavoro)...secondo me continua così già che sei a buon punto, da quanto ho visto il passaggio a versioni più recenti di visual studio non comporta cambiamenti drastici rispetto a quello su cui hai messo le mani ora.
Non che il VS2005 come editor C++ sia magnifico (secondo me volutamente troncato nelle funzionalità rispetto al C#), ma cavolo VC6 è antidiluviano.
Oltretutto ha un compilatore C++ che dire pietoso è fargli un complimento.
Non per dire ma mi sembra che i SP per VS6 siano femi alla versione 4 o giù di lì, pare ad esempio che il VS2005 SP1 abbia corretto 200 bug e Orcas ne correggerà altri 700.
Ho scaricato la Beta1 di Orcas devo solo trovare il tempo di installarla, per vedere se finalmente hanno inserito il refactoring per il C++.
Dr Nick Riviera
13-06-2007, 15:08
Ragazzi, mi prenderete per scemo, ma dalla rabbia ho volato il libro del vc++ ed ero tentato di dargli fuoco e mi sono messo a leggere una decina di pagine di vc#.. non ci crederete ma con qualche info che ho letto in un testo e alcune info reperite qua e là con google.. sono riuscito a creare l'applicazione di prova che cercavo di fare col vc++... :eek: 
Funziona, anche se forse un po' macchinosa nella creazione, cioè ho fatto le operazioni in modo manuale e probabilmente ci sono già delle classi fatte da richiamare (tipo per il massimo e il minimo).. cmq ho notato che effettivamente è più semplice in quanto non ho dovuto fare niente con puntatori, conversione puntatori, ecc.. ma è bastato scrivere il nome del label e via..
Ragazzi, mi prenderete per scemo, ma dalla rabbia ho volato il libro del vc++ ed ero tentato di dargli fuoco e mi sono messo a leggere una decina di pagine di vc#.. non ci crederete ma con qualche info che ho letto in un testo e alcune info reperite qua e là con google.. sono riuscito a creare l'applicazione di prova che cercavo di fare col vc++... :eek: 
Funziona, anche se forse un po' macchinosa nella creazione, cioè ho fatto le operazioni in modo manuale e probabilmente ci sono già delle classi fatte da richiamare (tipo per il massimo e il minimo).. cmq ho notato che effettivamente è più semplice in quanto non ho dovuto fare niente con puntatori, conversione puntatori, ecc.. ma è bastato scrivere il nome del label e via.. e io che t'avevo detto :rolleyes: non stavo mica esagerando con la storia delle 10 volte
se ambisci alla vera portabilità prova Java, è molto simile a C# ;)
Dr Nick Riviera
13-06-2007, 18:18
eh.. ora fatemi prendere familiarità con questo.. sennò ci divento scemo davvero.. :D 
PS: parlando in vc#, non riesco a far chiudere un form impostando un timer.. il timer è su quel forum, è abilitato, ho settato i ms, ma non capisco come mai non mi chiuda la finestra.. ho provato a scazzicchiare un po' col codice ma niente da fare.. solo peggio che meglio.. avete dei suggerimenti? Thx.. :)
quando scatta il timer che metodo usi per chiudere la finestra?
Dr Nick Riviera
13-06-2007, 20:37
quando scatta il timer che metodo usi per chiudere la finestra?
In public form2 sotto inizializecomponent ho messo timer1.Enabled = True se sotto metto un Close() l'applicazione crasha.. dovrei fare in modo di far capire al prog che quando il timer è a 0 la finestra deve chiudersi... :stordita:
Dr Nick Riviera
13-06-2007, 21:25
Ho usato this.Opacity ed ho risolto.. :ciapet: :sofico:
tomminno
13-06-2007, 23:27
e io che t'avevo detto :rolleyes: non stavo mica esagerando con la storia delle 10 volte
se ambisci alla vera portabilità prova Java, è molto simile a C# ;)
Dai per quello che doveva fare lui i puntatori volendo manco li toccava.
Gli è solo andata male che ha cominciato con quel catafalco delle MFC.
Sennò a questo punto consigliamo VB6 tanto è semplice e nefando.
Dr Nick Riviera
14-06-2007, 01:55
Dai per quello che doveva fare lui i puntatori volendo manco li toccava.
Gli è solo andata male che ha cominciato con quel catafalco delle MFC.
Sennò a questo punto consigliamo VB6 tanto è semplice e nefando.
Il vb lo provai tempo fa.. però feci presto a mollarlo quando una cosa che andava a me non andava ad altri e viceversa.. stessi comandi reazioni diverse (del tipo va o non va)..
^TiGeRShArK^
14-06-2007, 09:22
Ragazzi, mi prenderete per scemo, ma dalla rabbia ho volato il libro del vc++ ed ero tentato di dargli fuoco e mi sono messo a leggere una decina di pagine di vc#.. non ci crederete ma con qualche info che ho letto in un testo e alcune info reperite qua e là con google.. sono riuscito a creare l'applicazione di prova che cercavo di fare col vc++... :eek: 
Funziona, anche se forse un po' macchinosa nella creazione, cioè ho fatto le operazioni in modo manuale e probabilmente ci sono già delle classi fatte da richiamare (tipo per il massimo e il minimo).. cmq ho notato che effettivamente è più semplice in quanto non ho dovuto fare niente con puntatori, conversione puntatori, ecc.. ma è bastato scrivere il nome del label e via..
te l'avevo detto ank'io ke il C# era MOOOOLTO + semplice :p
Dr Nick Riviera
14-06-2007, 15:14
Infatti ringrazio tutti.. con questo linguaggio anche uno come me che non ha mai programmato riesce a fare qualche applicazionciotta.. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.