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

Non so se sono OT, nel caso mi scuso...
Ho notato che le conoscenze informatiche fornitemi dalla facoltà di
Ingegneria Informatica sono alquanto scarse, soprattutto vedendo il livello
degli argomenti di cui si parla qui! Quindi vorrei "rimboccarmi le maniche"
ed appunto imparare a programmare in win32! Qualcuno può consigliarmi dei
buoni libri da studiare per conto mio sull'argomento?
Sarei orientato al C++ (anche perchè è l'unica cosa che finora ho studiato),
oppure è meglio il C#?
Inoltre gli argomenti che mi piacerebbe imparare sono:
- Creare programmi su finestra (sono stufo dei soliti programmi "scolastici"
avviabili solo dal Prompt, che per carità sono utilissimi, ma al giorno
d'oggi chi li fa più?). Preferirei imparare a creare finestre, pulsanti,
ecc.. da solo, senza troppe "cose pregenerate"...
- Creare ed usare DLL (e mettiamoci anche le API di Windows, và)
- Interfacciarmi con periferiche esterne, anche a basso livello tramite il
C++ (USB, COM, LPT, ecc...), presumo che questo preveda la conoscenza di un
minimo di Assembler e di protocolli di comunicazione, giusto? Quindi dovrei
anche imparare come inserire linee di codice di altri linguaggi in programmi
scritti in C++
- Creare programmi concorrenti... in teoria so già qualcosa su semafori,
socket, ecc... ma la teoria non basta, e non avendo mai messo in pratica
queste nozioni, piano piano me le sto dimenticando :-(
- Creare programmi che possono comunicare tramite una rete o Internet (direi
che anche qui ci vuole una approfindita conoscenza dei protocolli TCP/IP e
dei programmi concorrenti)
Tenete conto che la cosa più "difficile" che hanno spiegato in aula di C++ è
il Polimorfismo (che non so nemmeno quanto possa risultare utile...), quindi
questo è il mio livello... qualcosa in più ho fatto per conto mio, ma vorrei
avere dei supporti (libri appunto) per prendere la strada giusta!
Grazie mille
e scusate ancora se sono OT
Saluti, Nanni


1) Charles Petzold 5 edizione Programmare Windows
2) J. Richter Programmare Applicazioni per  Microsoft Windows 
Letti e assimilati e se conosci il C,C++ sarai in grando di fare app
windows GUI gia di notevole capacita' .
In seguito se cercherai la produttivita allora i compilatori Borland
Builder e Microsoft 
C.NET
 con i rispettivi framework .
Ciao

ombra ha scritto:

Si trova ancora il libro di Richter?

 Saluti, Nanni
di niente, ciao.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

ed appunto imparare a programmare in win32!
Ti hanno consigliato due ottimi testi, gli esempi in C del
Petzold hanno istruito migliaia di programmatori, questo risponde
al 90% dei tuoi dubbi.
Anche se qualche intervento era un po' di parte, mi sembra
doveroso sottolineare alcuni punti.
- Il C# e' interpretato e non e' adatto ad applicazioni
"speciali", nei quali altri linguaggi sono ottimizzati per
sfruttare la massima velocita' del pc. Ricorda inoltre che il
framework .NET usato dal C# lavora principalmente sulla
piattaforma Windows ed e' stato creato come concorrente di Java,
multipiattaforma e decisamente piu' diffuso.
- L'interfacciamento ad una porta seriale (COM) avviene
direttamente con l'API CreateFile. Per la parallela (LPT) hai
bisogno di semplici driver esterni che si trovano con facilita'
in rete. La porta USB ha un protocollo piuttosto complesso e la
sua conoscenza serve solo per scrivere driver, quindi postponi
l'interesse verso di essa. Non serve l'assembler, ne' il C++.
- Non e' necessario conoscere il TCP/IP per scrivere programmi
che lavorano in internet, fanno tutto le API.
Con il C++ hai a disposizione framework che sveltiscono la
creazione di GUI, ma fai attenzione che il framework di VisualC
non e' compatibile con quello Borland/Delphi, quindi e'
importante anche scegliere il compilatore prima di iniziare
l'avventura. Comunque non e' necessario utilizzare tali framework
programmando in C++.
La GUI in C e' un po' piu' lunga da sviluppare, ma ti offre
l'occasione di capire meglio come funzionano i controlli
(pulsanti, campi di edit, liste, menu a tendina, etc).


Grazie ancora!


Grazie, ciao!


Ciao!

 (pulsanti, campi di edit, liste, menu a tendina, etc).
Quindi se scrivo un programma con Visual C++ utilizzando la GUI non č
compilabile dal compilatore Borland se uso il suo framework?

compilabile dal compilatore Borland se uso il suo framework?
MFC (Microsoft) e VLC (Borland) non sono compatibili.

> P.S. Borland ha fermato lo sviluppo dei propri RAD storici.
Non è corretto. Sta cercando una società separata che porti 
avanti lo sviluppo.
Stefano. 

 proprietarie ;-)
Sono d'accordo, e' consigliabile usare esclusivamente librerie open 
source oppure librerie che implementano un'API ben definita e 
implementata da almeno due grandi aziende.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 implementata da almeno due grandi aziende.
stai dicendo di NON programmare su Windows...? O_o


 saluti

 volendo...
appunto, si chiama IPC (Inter-Process Communication)... :D
l'IPC è la base per creare sistemi concorrenti (due o più thread o due o
più processi che non possono comunicare o percepire la loro reciproca
presenza in alcun modo possono tranquillamente esistere ma non causano
nessun problema di concorrenza).


 po' di tempo fa.
T_________T



Credo di aver capito: assimilavo l'IPC nel concetto di concorrenza!
Per "concorrenti" io intendo due processi che vengono eseguiti in
contemporanea (diciamo Time Sharing che è meglio...) che si contendono e si
passano risorse... Invece l'IPC sono solo le regole di comunicazione tra
processi...
--------
Ciao!

 quanto "linea di confine" tra hardware e software...
i drivers in realtà sono complessi per altri motivi... comunicare con
l'hardware è la cosa più semplice, IN&OUT + gestione interrupt + qualche
range di memoria; e nel caso delle porte USB oltrettutto non era neanche
necessario fare alcunché di tutto ciò: sarebbero i drivers sottostanti a
comunicare con l'hardware, tu dovresti solo piazzare il tuo driver nello
stack e inviare comandi ai drivers sottostanti.
