Newsgroup: it.comp.lang.c++
Titolo: argomento scottante !!!

Premetto che non ne capisco ancora molto di programmazione in C++...., ma
c'è ancora tempo.
Andando in giro per la rete sui vari forum che trattano programmazione C\C++
e non solo, una domanda frequente, a cui tutti rispondono inc@zz@ti e
infastiditi è quella della stampa con porta USB invece della parallela.
Io non capisco.....?  Ora naturalmente mi è venutà una certa curiosità di
sapere perchè questa domanda crea tanto disagio !?!

 sapere perchè questa domanda crea tanto disagio !?!
Perché non riguarda il C/C++ ma la programmazione sotto Windows. Ti devi
rivolgere ad un gruppo che tratta quell'argomento, non ad un gruppo sul
C o C++.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 C o C++.
A dire il vero questo argomento è su quasi tutti i forum che trattano il
C\C++, ma quello che vorrei capire è perchè con il C++ standard si può
comunicare con la parallela e con l'USB no ? solo questo, non mi interessa
avere delle risposte per risolvere il problema.

 comunicare con la parallela e con l'USB no?
Spiacente, col C++ standard hai solo std::cin, std::cout e std::cerr, e 
la possibilita` di leggere e scrivere da file generici.
Il fatto che su alcune piattaforme la scrittura su un certo file risulti 
in un flusso di dati spedito sulla porta parallela e` completamente al 
di fuori dello standard, ed e` *dipendente dalla piattaforma*.
Questo e` un newsgroup dove (almeno nelle intenzioni) si parla solo di 
codice buono per qualsiasi piattaforma che abbia un compilatore C++ 
aderente allo standard. Se e quando boost diventera` parte del C++ 
standard, allora il discorso si potra` ampliare ulteriormente.
Chi vuole informazioni specifiche per lo sviluppo in C++ su una data 
piattaforma e` cortesemente pregato di rivolgersi a newsgroup specifici 
per quella piattaforma (esempio: it.comp.os.linux.development o 
it.comp.programmare.win32), dove la sua domanda sara` ben accetta (e non 
e` che la gente che segue questo gruppo non segua anche gli altri).
Chi non e` conscio di cio` si merita un rimando ai newsgroup specifici.
Chi, pur essendo conscio di cio`, viene qui lo stesso a chiedere 
informazioni specifiche per una piattaforma, e` quantomeno sgarbato, e 
IMHO non merita risposta alcuna.
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

"IndieAlex" <indieale...@TOGLIMIvirgilio.it> wrote


Il fatto che questo argomenti sia trattato su tutti forum non giustifica il
fatto che sia OT e non di interesse su questo NG.
Ad ogni modo il motivo deriva dal fatto che molti fanno cose del genere
(faccio un esempio impreciso):
ofstream printer("LPT1");
printer << "Hello World\n\f";
printer.close();
Questo non e' portabile, non e' garantito che funzioni etc.... Tuttavia
alcuni OS accettano forme simili e stampano su LPT1.
LPT1 e' di fatto una porta parallela.
La stessa cosa non puoi fare con USB.
Ad ogni modo questo non e' un problema, perche' se usi le API del tuo OS ci
pensa lui per te. Ad esempio sotto windows esistono modi semplici per
stampare sulla stampante predefinita, non importa che sia LPT1 o USB (a
livello piu' basso vengono poi usati i driver della tua stampante).
Ok, spero di aver risposto a dovere. Non credo sia comunque un argomento
scottante.
Tommy

 comunicare con la parallela e con l'USB no ?
Non è esatto. Con il C++ standard non si può comunicare neanche con la
parallela, almeno non direttamente. Se il sistema operativo mette a
disposizione un nome di device logico corrispondente alla stampante,
dovunque essa sia collegata (parallela, USB, rete), allora potrebbe
bastare aprire tale device come fosse un file in scrittura. Altrimenti
ci si deve appoggiare alle API di sistema. Es.:
FILE *prn = fopen( "LPT1", "w" );
fprintf( prn, "Prova di stampa\n" );
fclose( prn );


 comunicare con la parallela e con l'USB no ? 
In C++ non esiste alcuna funzione standard nemmeno per comunicare con la
parallela.
Quindi l'istanza è respinta :P