Newsgroup: it.comp.programmare.win32
Titolo: Programmazione C++ sotto Windows

Ho imparato la sintassi del C++ e uso Bloodshed Dev C++ per sviluppare.
Chiaramente con la sintassi e le librerie base non si fà molto, specialmente
sotto Windows.
A questo punto mi chiedevo se ha più senso programmare nativamente Windows
sfruttando le Api, oppure appoggiarsi a librerie tipo WxWindows che sono
multipiattaforma e che quindi consentono di avere un software molto
portabile?
Tutto questo chiaramente per evitare di re-inventare la ruota ogni volta che
si decide di sviluppare in un sistema diverso, nel senso che comunque oggi
Windows è il sistema di riferimento, ma magari tra 2 anni non sarà cosi.
Nel caso di Wx Windows ho notato che mi crea degli exe assurdi anche per un
hello world (è vero si possono compattare ma quello di partenza è sempre sui
2 mega), esistono delle librerie per gestire Gui fatte bene, complete e
documentate oltre a WxWindows? Forse Gtk +?
Inoltre conoscete qualche sito che ha dei tutoria pratici (anche in inglese)
e degli esempi su come fare le operazioni più comuni in ambiente windows?
(tipo accesso a Db, gestione dei socket, gui etc etc). Io qualche sito lo
conosco sarebbe interessante condividere tra noi che sviluppiamo tutti
quelli che conosciamo.
Ops...scusate per la lunghezza del post, ho fatto un tema!
P.S. Inoltre non sarebbe il caso di creare un newsgroup che parli della
programmazione pratica C++ in maniera specifica? (questo newsgroup in realtà
non è rivolto solo ad un linguaggio e it.comp.lang.c++ se provi a parlare di
cose tipo multicast, socket, gui o db ti menano).
Gianni

programmazione pratica C++ in maniera specifica? 
La programmazione "pratica" dipende strettamente dal sistema operativo
e it.comp.programmare.win32 va benissimo per parlare di sviluppo sotto
Windows.  Esiste poi it.comp.os.linux.development, per Linux.

 Borland la sta per adottare per il suo nuovo ambiente di sviluppo C++.
Si ho letto anche io la notizia della Borland e questo mi spinge a studiare
WxWindows: resta il problema dell'exe dalle dimensioni spropositate...ma con
qualche packer oppure usando WxWindows come dll si possono migliorare un pò
le cose.
Gianni


scusami ma non è proprio come hai detto tu,le dimensioni dell'exe dipendono
da tanti fattori:
1) devi usare il flag -s durante il link (per Mingw), oppure il flag giusto
per lo strip del codice in caso di altri compilatori.Ricorda che usando -s
ti toglie anche le informazioni di debug,di conseguenza usalo solo per
generare l'exe finale.Questa fase ti dimezza(quasi) l'exe generato.
2) devi compilare il framework abilitando solo le voci interessate.Queste le
puoi selezionare tramite il file setup.h
3) per un ulteriore compattazione del codice ti consiglio UPX.
Tutto questo puo' portare l'exe anche a soli 250k,ma se proprio vuoi un
esempio pratico puoi guardare i tool compilati nella directory bin di
wxwindows.Il file widgets.exe,che contiene tutti i controlli possibili,è di
soli 256k.
Come ambiente di sviluppo puoi provare il nostro free in firma che è
abbastanza completo anche se purtroppo non ha ancora una documentazione
adeguata.Esistono anche altri ambiente ma sinceramente non li consiglierei
:) .Se sei interessato anche a qualcosa di commerciale puoi provare
wxdesigne e dialogblocks (quest'ultimo programmato dal founder di
wxwindows).Per python esiste boa ma non genera codice c++ e neppure gestisce
i sizer(se non ricordo male).
ciao
------------------------
http://visualwx.altervista.org/
nuova release 0.76 [freeware]
VisualWx rad per c++,python,perl,lua e wxwindows

Molto interessante questo editor di dialog.
Grazie
Gianni

 Windows è il sistema di riferimento, ma magari tra 2 anni non sarà cosi.
IMHO, l'approccio migliore nello sviluppo e' sempre quello di isolare la 
GUI dal kernel dell'applicazione. Al max. se cambia piattaforma dovrai 
riaggiustare il codice legato alla GUI, ma il kernel scritto in C++ 
dovrebbe essere tranquillamente portabile (al max con piccole 
modifiche).
 
Ciao,
Danguard

 i sizer(se non ricordo male).
Interessante il link e quello che fate. Però non è chiara la licenza e
quindi io starei attento ad usarlo se non per perdere un pò di tempo.
Secondo me dovreste al più presto definire i termini di licenza (è free ok,
ma lo posso usare per creare software commerciale?).
Secondo manca completamente un riferimento a chi siete. Siete una società,
un gruppo di amici....non per farmi gli affari vostri ma prima di adottare
un software di solito si vuol sapere con chi si ha a che fare (oltre a
quello detto prima). Altrimenti restiamo nella sfera hobbystica e tutto va
bene.
Ciao,
Enrico

 ma lo posso usare per creare software commerciale?).
Sul sito c'è scritto che è ancora  tutto molto giovane e di conseguenza non
esiste nulla di concreto se non quello che vedi.Questo software e' nato in
quanto sentivamo il bisogno di un piccolo gui editor visto che i progetti
wxwindows non offrono moltissimo(almeno per come la penso io) .Il tutto non
è stato progettato e nemmeno ha progetti futuri,visto che *non siamo* una
software house ma ci lavoriamo a tempo perso.Perciò non chiedetemi cosa
vogliamo fare,è una domanda ricorrente ma non sappiamo la risposta :))
Per quanto riguarda la licenza essendo freeware puoi anche usarlo per scopi
commerciali,pensavo fosse chiaro ma evidentemente mi sbagliavo.Purtroppo non
abbiamo molto tempo e tante cose sono ancora incomplete (comrpeso il sito).
Cerca di capire che il programma è ancora molto giovane e sviluppato quando
non si ha altro da fare,non tutto funziona e tanto meno è esente da problemi
:))


 :))
Questo l'avevo intuito. Il problema mi è sorto quando ho visto che il codice
non è scaricabile, almeno cosí ho capito. Se metti insieme software giovane,
sviluppato a tempo perso e no-sorgenti capisci che uno lo prova solo a tempo
perso e soprattutto non gli da grande valore anche se magari il progetto è
ottimo.
Ciao,
Enrico

 3) per un ulteriore compattazione del codice ti consiglio UPX.
UPX č sopravvalutato. Quel che guadagni in spazio su disco, lo perdi in 
occupazione di memoria. L'uso di UPX rende i programmi piů grandi molto 
meno reattivi, e posso anche spiegare perchč
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.3. C, C++ and ASM developers
                               and beta testers are welcome!

 meno reattivi, e posso anche spiegare perchč
Perchč lo usi male :) .UPX,secondo il mio modesto parere,va usato in piccoli
applicativi o demo da distribuire in internet e non č una questione di
dimensioni su disco(puoi risparmiare qualche mega non mi sembra utile in
quel senso).L'OP ha fatto riferimento alla dimensione del file generato e di
conseguenza l'uso di UPX si *potrebbe* consigliare.Non credo che debba
usarlo con applicativi di un certo valore.
Anche gli stessi founder di wxwindows consigliano quando necessario questo
tipo di programmi.
Per quanto riguarda lo spreco di memoria devi aggiungere solo le dimensioni
del file compattato, esempio:
ho provato un mio programma che č di circa 4 mega,lo spazio in piů occupato
in memoria da quello compattato era circa la dimensione del file,di
conseguenza č proprio quello che ci si aspetta.
Perň se hai informazioni che possono essere utili sarň felice di leggerle


meno reattivi, e posso anche spiegare perchè
Spiegacelo.  Io uso UPX da tempo, la "reattività" dei miei programmi
(anche molto complessi) è praticamente invariata e la dimensione
ridotta (tipicamente 5:1 (!)) mi è di grande aiuto per la
distribuzione del software.  Tutto il resto è "fuffa".

 dimensioni del file compattato
che non è poco, perchè ti trovi con un programma che non fa nulla e già 
occupa MB di memoria. Ma il problema maggiore è che operazioni (come il 
paging) normalmente senza overhead iniziano a consumare della memoria e 
a richiedere tempo per essere completate. Altro problema: l'allocazione 
di grandi quantità  di memoria può finire per esaurire il working set e 
causare il paging out del codice: operazione che, come abbiam visto, ha 
acquistato un certo overhead
Risultato: usa altri programmi per qualche minuto, e prima di tornare a 
usare il tuo programma compresso ti potrai godere una sinfonia per hard 
disk in swapping maggiore


 occupa MB di memoria. Ma il problema maggiore è che operazioni (come il
Scusa ma un mega in più nei computer di oggi,ma anche di 10 anni fa,non mi
sembra uno spreco eccessivo di memoria.Con questo non voglio dire che non ci
siano casi limiti,ma queste tue motivazioni non sono assolutamente valide
per non usarlo.Io spesso comprimo eseguibili fino a 5 mega e non ho mai
avuto problemi.
Ricorda che UPX *non* si usa con software di una certa importanza,visto che
neppure  viene garantito al 100%(neppure sarebbe possibile farlo visto che i
programmi all'interno potrebbero avere protezioni o codice che per vari
motivi non permettono l'uso).
ciao
------------------------
http://visualwx.altervista.org/
nuova release 0.77 [freeware]


motivi non permettono l'uso).
Da ignorante in materia, mi nasce spontanea la domanda:
Se e' non consigliabile per comprimere eseguibili di grosse
dimensioni, a che serve usarlo?
-- 
ciao, hal

 dimensioni, a che serve usarlo?
non hai letto gli altri messaggi vero ?
Ma non ti č mai capitato di dover distribuire un'applicazione in internet?
Ti garantisco che spedire 1 mega al posto di 4 o 5 (dipende
dall'aeseguibile) cambia molto..
Sicuramente adesso penserai che fare uno zip sia la stessa cosa ?
UPX ha appunto il vantaggio di non far perdere tempo ad usare programmi di
decompressione identici a quelli usati da te,senza dimenticare il fatto che
esistono persone che sanno a malapena accendere il computer,figuriamo
decomprimere un file.
ciao :)


 decomprimere un file.
Esistono gli Zip .exe autoscompattanti; per non parlare dei vari 
installer che hanno le zlib incorporate e fanno tutto loro. UPX e soci 
sono un retaggio del passato, di quando i dischi erano piccoli e 
costavano tanto. Oggi sono inutili. Domani, chissà...

 sembra uno spreco eccessivo di memoria.
Nei computer di 10 anni fa? Cioè nei 486 con 8MB di RAM e 200MB di HD?
SI', era uno spreco eccessivo di memoria.
Come tanti di questi tempi (Micro$oft in primis), sottovaluti il 
problema e pensi che l'utente farà girare solo il tuo programma e 
nient'altro mentre lo usa. NON è così... non sarà mai così.

 costavano tanto. Oggi sono inutili. Domani, chissà...
Ma ancora con questo disco (lo avevo gia detto che non ha molto senso con i
dischi di oggi)....io mi riverivo all'uso con internet (almeno io lo uso
solo per questo)
Comunque puoi anche usare altri programmi che raggiungono lo stesso
scopo,cioè quello di compattare l'exe, non era questo il problema.Io
continuo a preferire upx che a mio parere continua ad essere la migliore
soluzione ed è anche freeware .
Guarda che io nel mio primo post non ho detto "usa solo upx",se vuoi usare
altri software che comprimono l'exe va benisismo cmq.
ciao


 ha scritto nel messaggio
news:XOycb.117971$hE5.4...@news1.tin.it...

Perdonami ma lo Zip non è studiato per compattare gli eseguibili, ma
"genericamente" ottimizzato. UPX invece riesce a comprimere in modo molto
efficiente gli eseguibili con un rapporto superiore a quello che può fare
uno zip o arj.
Personalmente uso UPX da diverso tempo e non mi ha mai dato un problema! Se
fosse giusto quello che scrive Juliet, io che ho ancora dei progetti in VB6
(e sui quali abitualmente comprimo gli exe con UPX) dovrei avere enormi
problemi, ma che al momento non si sono ancora verificati.
Martino

 nient'altro mentre lo usa. NON è così... non sarà mai così.
Prima di tutto l'uso di un 486 è il caso "estremo" ma anche se fosse non
riguarda me se l'utente lascia aperto più applicazioni(questi inconvenienti
li hai sempre anche senza upx).Quello che mi interessa che il programma
funzioni e che non dia disagi più di quanto dovuti.
Il caso estremo con condizioni estreme da cmq disagi.
Ma poi consigliami qualche programma "freeware" migliore di UPX...
ciao :)


decomprimere un file.
Mah... un setup autoscompattante pare brutto?
-- 
ciao, hal

 Mah... un setup autoscompattante pare brutto?
Per ogni problema si valutano le varie soluzioni..
L'autoscompattante puo' anche andar bene ma dovrebbe avere un metodo per
cancellarsi da solo (dopo aver creato l'eseguibile).Non so quanto sia
possibile farlo con i software comuni ma io continuo a preferire upx
veloce,freeware e dal mio punto di vista senza problemi.
Sono scelte opinabili dai non facciamone un flame :P
ciao


Sono scelte opinabili dai non facciamone un flame :P
Spero proprio nessun flame: mi sono inserito solo per capire meglio ed
imparare qualcosa, tra l'altro a wxWindows e' da un po' che sto
pensando anch'io, quindi da qui ho tutto da imparare.
-- 
ciao, hal


Se vuoi qualcosa di freeware credo sia la scelta migliore e se hai gia
esperienza con mfc l'apprendimento č velocissimo.


 fa,non mi sembra uno spreco eccessivo di memoria
1 MB così, gratuitamente, senza che il programma abbia fatto niente? io 
non lo trovo per niente normale


sul tuo pc, poi mi saprai dire...
   Mah, il gestore della memoria non va poi cosi` male, direi che la
maggioranza di quel mega, in caso di penuria di ram, finirebbe
paginato su disco rapidamente, per non tornare mai piu` in ram.
-- 
S.L.