mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Coordinate reali

Scusate il disturbo ma sono un po' inesperto, volevo sapere se qualcuno può
suggerirmi come convertire delle coordinate reali di un grafico xy, in
coordinate logiche per la funzione Set Pixel in VisualC++

 coordinate logiche per la funzione Set Pixel in VisualC++
  Ci sono delle funzioni che servono per "mappare" le coordinate reali in
coordinate
logiche, ma sinceramente non sono riuscito a utilizzarle perchè ti permettono
solo di
utilizzare scale predefinite (mi pare che si chiami SetMapMode a cui devi
passare il
parametro di conversione es. HIMETRIC che converte un pixel in 0.001 mm).
Se no ti devi fare una classe che converta le coordinate reali in coordinate
logiche.
                            Saluti Domenico

Newsgroup: it.comp.lang.c++
Titolo: Leggere un invio...

Come poter leggere un invio???
Io ho provato con un ciclo while:
...
char a;
while ( a != '\n' ) cin >> a;
...
 ovviamente non funziona, ho provato anche con i doppi apici (") al
posto dei singoli apici, ma il compilatore mi dice che l'ANSI C++ non
permette di comparare dei puntatori con dei vettori, un po' strano come
errore.
Ho provato pure con il codice ASCII in decimale con int a, ma niente da
fare, entra nel ciclo e non ne esce piů.
Grazie in anticipo. CiozZ!!!

 while ( a != '\n' ) cin >> a;
La variabile a non e` inizializzata.
Inoltre, se c'e` un qualsiasi errore sull'input, o la fine
dell'input, cin si mette in stato di errore, e le cin>>a
diventano delle no-operation.
Inoltre, operator>> e` un operatore di input
_formattato_ (puoi usare la funzione-membro
get per avere un input NON formattato); questo
normalmente fa saltare il 'whitespace' -- che
comprende i '\n'.  Questo e` controllato dal
flag skipws -- potresti resettarlo per cambiare
il modus operandi.
Probabilmente get e` l'approccio piu` semplice:
for(;;) {
    int a = cin.get();
    if(a==EOF || a=='\n') break;
}
Alex
Newsgroup: it.comp.lang.c++
Titolo: Lettura Float

Sto realizzando (piu' per scopo didattico) un programma che legge le
immagini FITS.
Le immagini FITS sono immagini di tipo astronomico:
-sono a toni di grigio
-16 bit per pixel
Esistono diversi modi di salvare (specificato nell'header del file)
Esiste una modalita' di salvataggio (BitPix=-32) che implica il
salvataggio di ogni pixel come un float (4 byte)
Io riesco a leggere il file solo a condizione di invertire l'ordine
dei 4 byte.
Eppure lo std FITS prevede per ogni pixel un float nellol standard
IEEE.
Supponiamo che io scriva per un pixel questo codice C
FILE* miofile;
float temp;
miofile=fopen("luna.fts","rb");
fread (&temp,4,1,miofile)
fclose(miofile);
Mi aspetterei di trovare in temp gia' il mio valore ..
E invece no! Devo ribaltare i 4 byte.
Il problema nasce dal fatto che l'efficienza cala!!
Se devo aprire un file da 1000*500 pixel l'operazione non e' cosi'
veloce!!
Aiuti? Commenti?
Grazie a tutti!

veloce!!
Onestamente mi pare strano che il "ribaltamento"
rappresenti un serio problema sulle prestazioni
(confrontato con il caricamento da disco/rete e le
eventuali elaborazioni successive richieste).
Questo loop semplicissimo
  for (i=0; i<1000*500; i++)
  {
    unsigned int v=data[i];
    data[i]=(v>>24)|
            ((v>>8) &0x0000FF00)|
            ((v<<8) &0x00FF0000)|
            (v<<24);
  }
richiede sulla mia macchina (PIII/500) solamente
25/30 millisecondi per la sua esecuzione (misurazione
approssimativa effettuata con clock() e programma
compilato con BCC5.5)
Che sistema hai usato per effettuare il
ribaltamento ?
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

ribaltamento ?
In modo meno elegante!
Usando un char temporaneo per swappare i byte!
Uso BCB4 e assegno pixel x pixel il valore trovato con
Image1->Canvas->Pixels[x][y]=value;
Immagino che questo sia il collo! 
Dovrei ribaltarmi tutti i byte e poi assegnarli in blocco al Canvas!!!
Non vado oltre perche' sono OT!!!
Ti ringrazio vivamente!

Perché non provare, invece che a memorizzare double su file, a salvare i
singoli byte in ordine già invertito? Rileggendo, le prestazioni (se è di
questo che si tratta) dovrebbero essere leggermente aumentate.
Ciao!!!
Newsgroup: it.comp.lang.c++
Titolo: devC++

ciao a tutti
sono il solo a cui devC++ crasha ogni due per tre?
uso sotto winXp.
Ne conoscete uno simile sempre free?
thnx molto :))

ah si scusate
versione
4.9.1.0

forse non è il dev che crasha ma l'xp!

 4.9.1.0
Quella e' la versione beta5...
...che non e' una versione beta per nulla!
Usa la 4 se vuoi una versione stabile.
--
Gerolamo

uso sotto winXp.
No, non sei l'unico... a me sotto win2k succede ogni 2 compilazioni
(in media!) Ma come dice qualcuno...(Gerolamo)  non per niente e' una
beta!
bye!
___
Ciao a tutti e a prestissimo!
Togliete _nonrompeteconlospamming per rispondere in Mail
Andrew McBlues

mcblues78 ha scritto:

  il problema forse sta nei simpatici sistemi operativi che usate?

 il problema forse sta nei simpatici sistemi operativi che usate?
a me Win2K non si č mai bloccato e lo utilizzo da quando č
stato immesso sul mercato praticamente
--
Lawrence Oluyede
rhy...@myself.com

   il problema forse sta nei simpatici sistemi operativi che usate?
O forse sei tu che 'non sei buono' ad usarli... 8///
-- 
Luc.

Ok
grazie a tutti ora provo ad installare la versione stabile
il fatto è che pensavo fossero tutte beta e che l'ultima fosse la beta +
"stabile"
Il fatto che dia problemi sotto win è comprensibile visto che il compilatore
è uno standard su linux.
Probabilmente devono ancora risolvere piccoli problemi di compatibilità sui
nuovi sist operativi di mamma buggoSoft.
Cmq grazie a tutti per l'aiuto
Non è che conoscete un ide simile a Dev C++ sempre free per win?
thnx all
;)

  il problema forse sta nei simpatici sistemi operativi che usate?
Non vedo cosa possa centrare in questo caso il SO... forse vuoi dire
che i prodotti M$ sono delle cacchine e che e' meglio linux... beh
sono in parte d'accordo, pero' non sono certo uno che spala m***a alla
M$ in ogni occasione... io mi son sempre trovato bene... con win95 NT
e 2k... e pure con linux


 bye!
io con 98 e 2000Professional non mi trovo male (con 98 devo comunque
riavviare almeno due volte al giorno)
ma l'ME è proprio... aaaaargggghhh
xp l'ho visto ma non lo uso, ma stando a sentire quello che molti dicono
in altri newsgroup....
e poi vuole risorse pazzesche, ma il sistema operativo non doveva far
funzionare l'hardware?
qui sembra che l'hardware debba garantire in qualche modo che il SO
funzioni.
linux va su 486 che è un amore.
comunque siamo OT
ciao a tutti Valerio
Newsgroup: it.comp.lang.c++
Titolo: Aiuto sulla modalità di mappatura ??????

Passando dalla modalità MM_TEXT alla MM_LOENGLISH, riesco a visualizzare
l'immagine cambiando le coordinate, ma l'immagine e' visualizzata al
contrario.
Ho provato ad utilizzare nella BitBlt l'operazione DSTINVERT assieme alla
SRCCOPY ma non e' cambiato niente.
--
Posted from [195.223.129.35]
via Mailgate.ORG Server - 
http://www.mailgate.org

...
Passando dalla modalità MM_TEXT alla MM_LOENGLISH, riesco a visualizzare
l'immagine cambiando le coordinate, ma l'immagine e' visualizzata al
contrario.
Ho provato ad utilizzare nella BitBlt l'operazione DSTINVERT assieme alla
SRCCOPY ma non e' cambiato niente.
Prova a cambiare segno al membro "altezza"; le due mappature orientano
l'asse delle ordinate in modo opposto: MM_TEXT fa crescere y verso il basso,
a differenza di MM_LOENGLISH.
Ciao,
Gianfranco

...
Passando dalla modalità MM_TEXT alla MM_LOENGLISH, riesco a visualizzare
l'immagine cambiando le coordinate, ma l'immagine e' visualizzata al
contrario.
Ho provato ad utilizzare nella BitBlt l'operazione DSTINVERT assieme alla
SRCCOPY ma non e' cambiato niente.
PS: it.comp.programmare.win32 forse e' il newsgroup piu' adatto per questo
tipo di domande...
Ciao,
Gianfranco
Newsgroup: it.comp.lang.c++
Titolo: C++ Builder o Visual C++ ?

Grazie per l'attenzione!
Cerco un parere da esperto...
Ho programmato fino ad oggi con Microsoft C++ 7.0 e,
a volte, con Borland C++ 3.1.
Ora, con l'acquisto di un ADM K6 233 e con 64Mb di RAM,
vorrei passare ad un compilatore a 32 bit...
In generale č meglio il C++ Builder o il Visual C++ 5.0 Microsoft?
Cioč, qual'č il livello di flessibilitŕ di programmazione che
offrono i due pacchetti?
Mi piacerebbe avere delle risposte da chi giŕ usa Builder o
Microsoft...(che tipi di problemi avete avuto? vi trovate bene?
cambiereste il pacchetto acquistato?).
Grazie a tutti!
Nicola

<HTML>
<BLOCKQUOTE TYPE=CITE>In generale &egrave; meglio il C++ Builder o il Visual
C++ 5.0 Microsoft?
<BR>Cio&egrave;, qual'&egrave; il livello di flessibilit&agrave; di programmazione
che
<BR>offrono i due pacchetti?
<BR>Mi piacerebbe avere delle risposte da chi gi&agrave; usa Builder o
<BR>Microsoft...(che tipi di problemi avete avuto? vi trovate bene?
<BR>cambiereste il pacchetto acquistato?).</BLOCKQUOTE>
Io mi trovo bene col Borland C++ Builder, se non altro per una questione
di produttivit&agrave;: l'ambiente realmente visuale consente di creare
applicativi molto pi&ugrave; velocemente che col Visual C++. Certo, ci
sono delle limitazioni, non essendo un prodotto della mamma del Sistema
Operativo, uno su tutti: con il Builder non puoi compilare ActiveX (ma
si spera nella release 2, visto che Delfi 3 lo fa!)
<P>--
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ______&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
__&nbsp; _____
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&nbsp; ___/\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
_/ / __&nbsp; \
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&nbsp; /__ \/__&nbsp;&nbsp; __&nbsp;
._/ / /__/ /\
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \___&nbsp; \ /&nbsp; | /&nbsp;
|\&nbsp;&nbsp; / _____/ /
<BR>&nbsp;_________/&nbsp; // /||//| ||__/ /\____\/
<BR>&nbsp;|__________//_/ |_/ |______/ /
<BR>&nbsp;\__________\\_\/\_\/\______\/
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ===>> 
S...@IPSNET.IT
 &lt;&lt;===
<BR>&nbsp;=> <A HREF="
http://www.gamblecity.com/Sm3P
">
http://www.gamblecity.com/Sm3P
</A> &lt;=
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------------------------
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Consiste ut procederas"
<BR>&nbsp;</HTML>

 risorse hardware e certo periodo di apprendimento.
Avevo già un'idea del genere e me ne hai dato conferma. :-)
Dalle risposte che dai nel NG penso che posso fidarmi...
Grazie per l'aiuto.
Nicola.
Newsgroup: it.comp.lang.c++
Titolo: Evento EXIT

Come posso gestire l'evento EXIT da una Edit? Nella classe CEdit non
ho trovato nulla che mi possa servire. E allora?
Bye
Enrico

 ho trovato nulla che mi possa servire. E allora?
nella mappa messaggi utilizza ON_COMMAND(IDM_FILE_EXIT,OnFileExit);
con la funzione void CMainWindow::OnFileExit()
{sendmessage(WM_CLOSE,0,0);}
Ciao

ho trovato nulla che mi possa servire. E allora?
cosa intendi per "evento exit" ? Se intendi effettuare qualcosa quando
il controllo viene distrutto devi intercettare il messaggio
WM_DESTROY.
Gianpaolo Bottin
- Live Long and Prosper -

	altro controllo.
Il controllo che perde il focus invia alla finestra parent il
messaggio di notifica EN_KILLFOCUS. Oppure se hai derivato una tua
classe da CEdit puoi gestire direttamente il messagio di WM_KILLFOCUS.
Puoi utilizzare il class wizard per intecettare i messaggi che ti
interessano.


Newsgroup: it.comp.lang.c++
Titolo: Aiuto - accesso diretto in memoria

Da poco ho iniziato ad utilizzare il C, fino ad ora avevo sempre
utilizzato l'assembler, tra le prime prove ho cercato di leggere e
scrivere direttamante la memoria per poter accedere ad una scheda di
I/O su bus ISA.
La mia domanda e' questa: e' possibile con C++ Builder 3 eseguire
operazioni su una locazione di memoria? 
Grazie a chiunque vorra' aiutarmi.
Livio
livi...@geocities.com

Non conosco il C++ Builder. Posso dirti perņ che puoi accedere direttamente
alla memoria solo quando lavori in modalitą reale (la gestione di memoria
del DOS, per intenderci).
Ciao, Giuseppe

Probabilmente per interfacciarti alla scheda non ti occorre un accesso
diretto alla memoria ma un accesso agli indirizzi di I/O della scheda.
Per l'accesso diretto alle porte hardware esistono numerose DLL e
componenti, come:
DriverLINX Port I/O Driver for Win9x and WinNT
che ho reperito al mirror di 
www.infomedia.it
 del sito "Delphi Super Page".
Inferno.

Ciao Livio,
ho avuto un problema analogo un pò di tempo fa e la soluzione che ho
utilizzato è stata scrivere un VxD che era in grado di colloquiare con la
scheda tramite I/O. Era inoltre in grado di gestire gli interrupt hardware e
programmare la DMA, servizi che sembravano non essere disponibili tramite
Win32.
Ho avuto la necessità inoltre di preservare una certa quantità di memoria di
cui dovevo conoscere necessariamente l'indirizzo 'fisico' ( vedi
programmazione DMA ).
L'accesso a livello applicazione della memoria così allocata poteva poi
essere eseguito interfacciandosi con il VxD attraverso le funzioni IOCTL di
Win32.
Probabilmente esiste qualche altra soluzione più semplice che magari risolve
esclusivamente le problematiche legate alla lettura/scrittura delle porte di
input/output.
A parte un pò di difficoltà nell'interpretare la documentazione del DDK, il
kit di sviluppo Microsoft per i VxD, alla fine il tipo di problematiche sono
le stesse che si possono incontrare nella programmazione assembler, per
esempio, la scrittura di un interrupt handler e via dicendo.
In ogni caso, auguri !!!
Giuseppe
Newsgroup: it.comp.lang.c++
Titolo: Iteratore all'ultimo elemento

Hi to all!
Qual e' secondo voi il modo corretto E portabile di recuperare
l'iteratore all'ultimo elemento (ove questo ha senso)?
Ovviamente si suppone che container.size() != 0.
Usare container.rbegin() non va bene perche' il tipo reverse_iterator e'
diverso da iterator. E anche l'assegnamento
it = --container.end();
non e' sempre portabile (su quest'ultimo punto ha scritto qualche tempo
fa un msg Nicola Musatti, ma si trova un riferimento anche all'inizio di
"Exceptional C++"). Vorrei sottolineare che la riga precedente non e'
che sia sbagliata, ma puo', appunto, essere non portabile nel senso di
non compilabile; se pero' compila, dovrebbe comportarsi correttamente.
Cosa resta?
it = container.end();
advance(it, -1);
Esiste un metodo migliore o magari e' cosi' evidente che non lo vedo?
:-)
Ciao
Gian Michele

 vedo?
Puoi usare le librerie boost:
http://www.boost.org/libs/utility/utility.htm#functions%20next
  #include <boost/utility.hpp>
 
  if (!c.empty())
    it = boost::prior( c.end() );
        Mauro

     it = boost::prior( c.end() );
Grazie per la risposta, ma la funzione e' definita cosi':
template <class T>
    inline T prior(T x) { return --x; }
che credo provochi gli stessi problemi di
it = --container.end();
ovvero se l'iteratore e' un puntatore si applica il "--" su un termine
non valutabile come lvalue.
Ciao
Gian Michele

 non valutabile come lvalue.
L'espressione costituita dal nome di una variabile (locale, globale,
parametro, ecc.) *e'* un lvalue. Anzi e' l'lvalue per antonomasia.
Altrimenti non potresti mai fare:
int a[5];
int * p = a;
++p;
No?
Ciao,
Nicola

 per antonomasia.
Grazie Nicola, per qualche strano motivo pensavo che la valutazione
della variabile in determinati contesti potesse generare un
temporaneo... :-)
Ciao
Gian Michele

...

Puo', ma non in questo caso. L'esempio piu' tipico e' la famigerata
conversione implicita.
Ciao,
Nicola

 conversione implicita.
Prima di risponderti avevo fatto prove in tal senso :-)
Ciao
Gian Michele

Newsgroup: it.comp.lang.c++
Titolo: Programmi C++

Sto cercando dei programmini o dei giochi scritti in C+-+-,
dove posso trovarli?
Qualcuno pu+API- postarmeli?
Grazie+ACEAIQ-
Lore
+ACM-PEGASO CUBE 650+ACM-
www.geocities.com/SunsetStrip/Backstage/9818/
hyper+AF8-band+AEA-geocities.com

...




Newsgroup: it.comp.lang.c++
Titolo: Compilatori C++ freeware?

Quali sono quelli per Win95/NT?
Anche se mi rendo conto di chiedere molto, ne esistono di
integrati (che siano un po' piu` di un compilatore in
linea per intenderci)?
Ora chiedo troppo: e di visuali?
Ciao e grazie per la pazienza.
Michele.

 Ciao e grazie per la pazienza.
Di niente, per cosi` poco.
Buon Natale.
_________________________________________
Roberto Gerola
e-mail: 
roge...@tin.it
www: 
http://space.tin.it/computer/rgerola
Newsgroup: it.comp.lang.c++
Titolo: [newbie] Problema con addizione stringhe

Ciao
ho il seguente codice :
#define VERSION    "version 0.01"
[...]
    String text;
    Memo->Lines->Add("Program PIPPO-PLUTO "+VERSION);
[...]
Mi torna un errore di invalid pointer addition.
Come posso risolvere ?
pS: lo stesso problema c'e' l'ho nelle query SQL che creo dinamicamente.
grazie a tutti
ciao!

 [...]
Equivale a fare "Program PIPPO-PLUTO "+"version 0.01" ovvero sommare due 
stringhe costanti.
Le stringhe costanti in C/C++ sono puntatori a array di caratteri non 
modificabili, che non possono essere sommati fra loro.
Questo a giustificare l'errore in compilazione: l'errore logico è che la 
concatenazione di due stringhe non si fa così.
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.


Il problema è anche un altro. Sembra che lui stia usando C++ Builder & VCL
[1]
In questo caso, devi fare:
<CODE>
#define VERSION "version 0.01"
[...]
Memo->Lines->Add( AnsiString("Program PIPPO-PLUTO") + VERSION);
[...]
</CODE>
Se non dovesse funzionare, prova anche
<CODE>
Memo->Lines->Add( AnsiString("Program PIPPO-PLUTO") + AnsiString(VERSION));
</CODE>
Rimando cmq a [1]
IHIBU (I hope I've been useful / Spero di essere stato utile...str***ata
inventata al momento...)
    Shogun
[1] Se non è così, fucilatemi pure... ^__^

 [1]
cioč ? quale sarebbe il problema di usare C++ Builder e VCL ??
C'e' un alternativa piů sensata ?
Posso usare char *mySTRING al posto di String mySTRING ?
che vantaggio ottengo in questo modo ?
e cmq poi come faccio a "sommare" due *char ???
mi sei stato molto utile, domani provo, nella generazioen dinamica di una
query SQL mettere ogni volta AnsiString() potrebbe essre un po macchinoso,
se voi usate un alternativa sarň ben felice di adottarla :-)
grazie!!
ciao!


Cioč intendi la concatenazione di due char* vero?
Se invece fosse proprio oggetti string, c'č l'overloading vero?
....vero?
--
Emanuele Di Saverio
---------------------------------------------
Remove NOSPAM manually for reply
Scusate le vaccate se  ne dico!

 ....vero?
Se fossero due oggetti string l'operatore + consente la concatenazione (ma 
anche se solo il primo fosse un oggetto string).
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'č problema,



Qui non posso aiutarti. Non ho mai affrontato la programmazione
interfacciata a database...sorry!
IHIBU (ma che acronimo idiota! ^__^)
    Shogun
Newsgroup: it.comp.lang.c++
Titolo: Trasmissione Radio via RS232

Ciao a tutti,
Sto cercando di implementare un protocollo per la trasmissione dati
via radio attraverso modem che si collegano alla RS232.
Ho pensato di relalizzare il progetto su due livelli:
1) basso livello che implementa le primitive per  invio e ricezione di
pacchetti di lunghezza fissa dalla RS232 e l'impacchettamento dei dati
in un frame.
2) un livello più astratto in cui si definisce una sorta di
"connessione" fra due terminali remoti con primitive send/receive che
si interfacciano direttamente con uno stream da me implementato con
due code di ingresso e uscita
Lo stesso livello 2 prevede un thread che va in esecuzione con la Open
(quella che crea la connessione) e che avrebbe la funzione di
consumare/popolare in tempo reale le due code dello stream richiamando
le primitive del livello 1.
Non so se sono stato chiaro, ma in sostanza per spedire un file io
faccio una Send dal livello 2 che mi popola la coda di uscita la quale
viene man mano consumata dal thread che ne impacchetta un pezzetto
alla volta e lo invia alla RS232.
Tutto ciò premesso, mi sono bloccato al punto di provare a far
funzionare il codice in quanto sembra che le due realtà viste dal
thread e dal processo principale siano DIVERGENTI!!!
Ossia la SEND mette 255 byte sullo stream (confermati dalle printf che
ho inserito dentro la classe QUEUE che implementa la cosa)  ed il
thread lo vede vuoto per cui non spedisce nulla (anche questo dato è
confermato dalle printf che ho inserito dentro la classe QUEUE)
Dove sbaglio?
Riporto solo poche righe di codice:
int Transport::Open(WORD RemoteAddress, BYTE comnum, BYTE baudrate)
{
 ....
      // Attiva il demone che spedisce dati sulla COM
       hThread = CreateThread( 
            NULL,              // default security attributes
            0,                 // use default stack size  
            ComDeamon,        // thread function 
            this,             // argument to thread function 
            0,                 // use default creation flags 
            &dwThreadId);   // returns the thread identifier 
....
}
dove ComDeamon è una classe "amica" di Transport dove l'accesso
all'istanza della classe viene effettuato come da codice sotto:
DWORD WINAPI ComDeamon( LPVOID t )
{
 ....
	Transport *T = (Transport *)t;
....
}
C'è qualcuno che sa darmi indicazioni?
Luca,

 .....

Newsgroup: it.comp.lang.c++
Titolo: DIALOG DI COPIA

Esiste nelle risorse di sistema una dialog
che visualizzi la tipica animazione
di copia tra file?
per intenderci il foglietto svolazzante tra una cartella
e l'altra..
grazie x l'impegno!
                    Mauro

Ciao Mauro,
  il 05 Nov 1997, parlavi di [DIALOG DI COPIA] a All:
 MC> Esiste nelle risorse di sistema una dialog
 MC> che visualizzi la tipica animazione
 MC> di copia tra file?
 MC> per intenderci il foglietto svolazzante tra una cartella
 MC> e l'altra..
Quel foglietto svolazzante e' un filmato AVI.
Se programmi con le MFC, esiste una classe chiamata CAnimateCtrl che fa proprio
al caso tuo, cioe' inserisce dei filmati AVI nella tua Dialog.
Ora, lo specifico AVI della copia dei file lo trovi sicuramente sul sito
microsoft, in quanto tra gli esempi del Visual C++ ce n'e' uno che mostra i
vari controlli (quindi anche quelli animati) che si chiama CmnCtrls (o qualcosa
del genere) ed usa, appunto, lo "svolazzante foglietto" :-)
Se non dovessi trovarlo, fammi un fischio.
Greetings from Naples, Italy
Paolo"Jack Bass" Polce
mailto:
jack...@geocities.com
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ ItalTec BBS Free Internet Gateway - +39-81-5451506        +
+                                                           +
+ User email address:   
Paolo...@p0.f232.n335.z2.fidonet.org
                                  +
+ User FidoNet address: 2:335/232                                  +
+                                                           +
+ Disclaimer: The views of this user are strictly his own.  +
+                                                           +
+ Naples, Italy.                                            +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Newsgroup: it.comp.lang.c++
Titolo: Differenza iteratori

Allora:
using std::string;
const string numero("1000");
string::const_iterator inizio=numero.begin();
string::const_iterator fine=numero.end();
La differenza tra `fine' ed `inizio' dovrebbe essere uguale a 3?
Grazie, scusatemi se è una domanda idiota
-- 
Per l'e-mail rimuovere le maiuscole e gli underscore

 
No, 4. 'end', nella terminologia degli iteratori, rappresenta una 
generalizzazione dell'idea di puntatore past-the-end di un array, cioč 
puntatore alla locazione successiva all'ultimo elemento. 'end' non punta 
quindi a un elemento esistente e non puň essere dereferenziato. La distanza 
tra 'begin' e 'end' coincide con il valore restituito da size().
Max

 Max
Ok, grazie. Ma vorrei capire ancora una cosa:
unsigned numpos=fine-inizio;
cout << numpos << endl;
cout << fine-inizio < endl;
Il primo cout stampa 0, il secondo 4: ha un senso?


 Il primo cout stampa 0, il secondo 4: ha un senso?
cout << fine-inizio << endl;
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

 cout << fine-inizio << endl;
Vabbé, m'è sfuggito un <; comunque la sostanza non cambia.


 Il primo cout stampa 0, il secondo 4: ha un senso?
No, non ha senso. Assumendo che il singolo '<' sia solo un errore di
trascrizione, il codice deve stamparti 4 in entrambi i casi.
Max

...

L'operatore shift << ha la precedenza rispetto a quello di sottrazione - .
La sintassi corretta dovrebbe essere:
cout << (fine-inizio) << endl;

 cout << (fine-inizio) << endl;
No, l'operatore << non ha precedenza su l'operatore -. Se così fosse, il codice
originario non si sarebbe nemmeno compilato.
 cout << 1 - 2 ; // OK, equivale a cout << (1 - 2)
 cout << 1 & 2 ; // non compila, equivale a (cout << 1 ) & 2
Max


Anche il mio compilatore (gcc3.2.3) pretende che l'espressione aritmetica
sia posta dentro parentesi, altrimenti restituisce solo il valore del primo
operando, quindi:
	cout << ( 1 - 2 ) << endl;
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 cout << ( 1 - 2 ) << endl;
 $ g++ -v
 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/specs
 ...
 gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
 $ cat temp.cpp
 #include <iostream>
 int main()
 {
        std::cout << 1 - 2 << std::endl;
 }
 $ g++  temp.cpp
 $ ./a.out
 -1
Max
Newsgroup: it.comp.lang.c++
Titolo: kruskal:albero ricoprente minimo in un grafo: aiuto.

Dovrei trovare un albero ricoprente minimo in un grafo.
Vorrei utilizzare le STL...
mi date un idea?
quale contenitore pensate sia più appropriato?
esiste un codice già fatto?
Grazie in anticipo, Mario.

 esiste un codice già fatto?
Puoi usare la boost graph library (
www.boost.org
) che, tra le altre cose,
implementa l'algoritmo che ti serve.
Ciao
Eido

Grazie per l'aiuto.
Sembra un sito molto interessante (anche per altre cose!).
Ho visto gli algoritmi per lo minimum spanning tree sia di Prim che di
Kruskal,
ma non sono proprio un veterano del C++ quindi ci ho capito poco!
Se la cosa è semplice, e non richiede più di 93 secondi, e hai già visto
tutte le pubblicità in televisione... posso chiederti un piccolo esempio di
utilizzo?
(RIPETO: se la cosa non porta via più di qualche minuto).
Grazie per l'aiuto che mi hai dato, Mario.


Newsgroup: it.comp.lang.c++
Titolo: Allocare dinamicamente un array di stringhe

Ho il seguente problema: devo leggere una serie di dati di tipo stringa
da un file, e fin qui tutto bene, una volta calcolato il numero totale
di elementi dovrei allocare dinamicamente un array di stringhe (un array
di caratteri bidimensionale), e non riesco a farlo, il programma
restituisce sempre segmentation fault... Mi sto scervellando.
Ricordo che una volta con un problema analogo col borland (sotto dos)
riusci' nell'intento, forse con qualche artificio che ora non ricordo...
Preciso che devo utilizzare il linguaggio c e non il c++.
Qualcuno di voi mi manderebbe un esempietto che mi aiuti a risolvere il
problema?
Grazie anticipatamente

 restituisce sempre segmentation fault...
Forse sarebbe meglio che ci facessi vedere come hai fatto. Comunque, se
le stringhe sono a lunghezza variabile forse ti conviene allocare prima
un array di puntatori a carattere (char *a[ nn ]) e poi, per ogni
elemento di questo, allocare un array di caratteri atto a contenere la
stringa che ti interessa memorizzare a quella posizione.
EMG

Se sei sotto windows l'allocazione dinamica deve seguire delle regole ben
precise: non si puň richiamare malloc. Puň essere questo il tuo problema?
ciao, Marco Altieri

Sono sotto unix, i file che devo leggere sono i file contenenti gli utenti ed
i gruppi.

 di caratteri bidimensionale), e non riesco a farlo, il programma


Problema risolto.
Con le tue istruzioni ho risolto il problema, probabilmente avevo combinato
qualche pasticcio con i puntatori.
Grazie.
Newsgroup: it.comp.lang.c++
Titolo: run-time class

hiya,
how do we know the class of a run-time object? e.g. a method to return a
string containing the name of that class.
thanks.
shawn.

 
There is no way to get the original source code name.  It is gone by the
time the program runs.  Your safest bet is to add  your own virtual method
that returns what you want it to say.
typeid provides a hook to a implementation defined string describing the
type which might be readable or might be undecipherable.

For detail look for RTTI (Runtime Type Identification) in any good c++
book


Please remove it.comp.lang.c++ from your follow-ups, as that is the
*italian* C++ newsgroup.
Thank you,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Funzione IsNumeric !?!

Salve a tutti
mi chiedevo se esiste una funzione che mi permetta di sapere se una
data stringa è un numero o appunto una stringa.
in VB6 c'è una funzione che si chiama iIsNumeric che mi permette
di controllare il contenuto di una TextBox e di agire di conseguenza
sto iniziando ad usare C++ Builder 6 ma non riesco a trovare nulla
ciao e grazie a tutti
Marco



cioè tu voi sapere se
"1234" è un int o una strina di char?
beh basta che contrlolli i singoli caratteri e li confronti con 0x30 e
0x39 tipo
 function isNumeric ( CString str ) {
  bool result = true;
  for ( i = 0; i < str.len() ); i++ ) {
     result &= ( 0x30 <= str.charAt(i) &&  str.charAt(i) <= 0x39;
  }
  return result;
}
si puo' ottimizare un po' { esempio cambiando la condizione in modo
che appena va in false esce dal colcio e cose cosi
Il Razziatore,
The Only Good Windows is an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
ICQ     : 67552596
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

 0x39 tipo
int isdigit(int)
che si trova in <cctype>
č molto piů portabile e fa la stessa cosa.
-- 
Gerolamo

The Only Good Windows is an uninstalled Windows
   Riquoto. :P
P.S.: Scherzo :)
-- 
S.L.

 0x39
Perche proprio questi 2???
Newsgroup: it.comp.lang.c++
Titolo: Template e header.

Come funziona per la dichiarazione e definizione dei template di classe e
funzione nei file header?
Se io ho un template di funzione la devo trattare come una funzione normale
oppure devo mettere il relativo codice nell'header?
Se io ho un template di classe il codice dei metodi non inline di questa
classe va messo nell'header o nel cpp?
Perchè?

 funzione nei file header?
La questione è stata trattata diverse volte in questo newsgroup, anche in 
un thread molto recente:
 
http://groups.google.com/groups?th=3469e1e723c886e
 
 
http://groups.google.com/groups?th=bd280b205bba9a4f
Max
 

   
http://groups.google.com/groups?th=bd280b205bba9a4f
A occhio m'č parso di capire che la soluzione piů breve e rapida č quella di
mettere tutto il codice relativo a tutto quanto č template nei file .h ed
includere tutto il codice relativo ogniqualvolta necessario.
Correggetemi se sbaglio.
In effetti era la soluzione che stavo adottando, mi sembrava solo un po'
strano avere degli header cosě ricchi di codice.
Ma mi adeguo.

 Ma mi adeguo.
Hai dedotto bene. Diciamo che e' la soluzione che sicuramente funziona.
In effetti anche secondo me e' bruttino (come dicevo gia' nel thread 
trattato, se e' quello che penso io), pero'... sic est! ;)
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */
Newsgroup: it.comp.lang.c++
Titolo: MFC

Sapete dove posso trovare online un elenco con descrizione delle varie
classi di MFC??
Grazie mille!!!!!

 Grazie mille!!!!!
http://msdn.microsoft.com/library/en-us/vcmfc98/html/
_mfc_class_library_reference_introduction.asp
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.

Sai dirmi dove posso trovare nline la lista e la descrizione delle calssi di
MFC?
Grazie mille!!!

 calssi di MFC?
Le leggi le risposte, oppure fai domande solo per occupare banda?
Per giunta sei ot. Se proprio vuoi costringermi a prenderne atto...

Newsgroup: it.comp.lang.c++
Titolo: Scambio di messaggi tra EXE. Come ?

Come è possibile far comunicare due eseguibili distinti sviluppati in
VC++5 ?
E due eseguibili sviluppati uno con VB5 e uno con VC++5 ?
Grazie.
--
Posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate.ORG Server - 
http://www.mailgate.org

E due eseguibili sviluppati uno con VB5 e uno con VC++5 ?
per esempio :
SendMessage(..) o PostMessage(...), uso della Memoria condivisa, uso degli
eventi,
ma non è tutto ...

E due eseguibili sviluppati uno con VB5 e uno con VC++5 ?
Praticamente tutti gli stessi, anche se la difficolta` di implementare
i vari casi puo` differire non poco.
L'architettura piu` nuova e meglio pensata per questo lavoro
e` il COM, Component Object Model.  In VB5, tutti i programmi
sono bravissimi a fare i clienti COM (la CreateObject, ecc ecc,
fanno miracoli:-), e basta fare una "ActiveX EXE" (che non e`
affatto obbligata a fare tutto quanto occorra per essere "veri"
ActiveX...:-) per realizzare con facilita` anche semplici server
COM.  In VC++5, grazie al miracolo di #import, e` oggi quasi
altrettanto facile fare i clienti COM; per realizzare semplici
server COM, l'ideale e` l'ATL, la ActiveX Template Library,
ma ovviamente ci sono altri approcci, come quello che in
merito offrono le MFC, e varie librerie di macro e classi (o
si puo` fare anche tutto a manina, ovviamente:-).  Non banale
in VC++ e` trovare gli oggetti (EXE) gia` attivi -- a meno che
il tuo eseguibile VB non collabori grazie al concetto di
"single-use", quello VC++ dovra` sfrucugliarsi la Running
Object Table e relativi monicker; in VB, naturalmente, e`
invece banale anche questo... una GetObject senza il 1o
parametro, e hai l'oggetto COM relativo all'EXE di quel dato
tipo che sta gia` girando (o se no errore, che puoi trappare
e gestire con una CreateObject, o una GetObject con 1o
parametro stringa vuota, che faranno partire l'EXE stessa).]
COM mi piace moltissimo (v. anche il mio articoletto inglese:
http://magenta.com/~alex/ComEtc/briefest.htm
 per un breve
riassunto relativo alla tecnologia in questione!-) ma, come
gia` dicevo, ci sono anche mille altri metodi per altri casi piu`
semplici e specializzati, dalle semplici SendMessage e
PostMessage verso una finestra, alla memoria condivisa
("file mapping") per scambiarsi grossi moli di dati, ecc.  Il
COM ha anche il notevole vantaggio che si estende, senza
cambiare una riga di programma ne` ricompilare, a DCOM,
che (benche` di per se' non molto "scalabile", cioe` adatto
ad applicazioni serie di calcolo distribuito con grosse reti,
grandi distanze, ecc -- bisogna aggiungere MTS e MSMQ
per ottenere un sistema di calcolo distribuito davvero serio)
gia` permette una "piccola" distribuzione del calcolo (fra
una dozzina o meno di PC in rete locale, ad esempio); gli
altri sistemi di comunicazione sono strettamente legati a
una singola stazione di lavoro, o almeno fanno molta, ma
molta fatica ad estendersi in rete.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Connessione a Database

Salve a tutto il newsgroup,
qualcuno saprebbe indicarmi come accedere ad un database (eseguendo select,
ricavando informazioni sui campi etc) utilizzando GNU c++ ?
Rispondetemi, se volete, anche in privato!
Grazie in anticipo !
--
"Long is the way, and hard, that out
  of hell leads up to light "
[Milton]

 wrote in message
news:RIUB6.10029$s93.6...@news.infostrada.it...


Fondamentalmente, Access. Quello di cui ho bisogno è la possibilità di
eseguire query e di determinare quali sono i campi del database.
Bob Rock <there_is_no_business_like_showbusiness@_NO_SPAM_hotmail.com> wrote
in message 9bc83h$6sm$1...@taliesin.netcom.net.uk...


Newsgroup: it.comp.lang.c++
Titolo: Rad e non ...penso che ora basti!!

Salve ragazzi,
prima devo una scusa a tutti coloro che in questi 
giorni si sono assorbiti interminabili messaggi di battuta
e controbattuta a proposito di ambienti RAD e non.
Bene non avrei mai immaginato di scatenatenare un simile putiferio
con il mio primo messaggio a proposito di tal argomento.
Ho capito,anzi abbiamo capito,che c'é chi preferisce i RAD e chi
i non RAD ed é perfettamente inutile penso di continuare a rispondersi
...e col mio faccio di più , il mio va più veloce,faccio tutto anche
l'impossibile...
VA BENE ABBIAMO CAPITO!!Ora ,per cortesia,torniamo agli arcani misteri
del
linguaggio applicato ai rispettivi ambienti.
In fin dei conti é sempre vincente colui che:
1)Sa BENE il C++
2)Sa usare più di un compilatore (più RAD e più non RAD).
Quindi "ragassuoli" in malora i compilatori(se no bisognerebbe fare
un newsgroup apposta...),e viva il C++!!!!
Spero di essere stato abbastanza chiaro.
Ciao
Klaus ;-)

Concordo.
Massimo
-------------------==== Posted via Deja News ====-----------------------
 
http://www.dejanews.com/
     Search, Read, Post to Usenet

l'impossibile...
Per imparare bene il C++ e la programmazione in Windows bisogna
partire con i compilatori IDE.
Il RAD va bene per fare velocemente l'interfaccia grafica dei
programmi sotto Windows, non per fare velocemente tutto. 
Bisogna usare RAD o IDE a seconda del problema. 
Se hai dei dubbi leggi le riviste DEV e Computer Programming e
contatta
esperti come Carlo Pescio, Lo Russo e altri. 
Vedrai che ti dicono la stessa cosa. 
Ciao, Luciano 


Esperti ?!?!

Esperti ?!?!
perche` ??
di certo non sapranno tutto, ma non puoi dire che siano incompetenti,
anche se mi sembra che "Laboratorio del cittadino" parli troppo bene
di queste persone e delle riviste... mmm che si uno di loro ?? ;)
Buon Natale a tutti
[ranger, email: 
ran...@queen.it
]

...

Newsgroup: it.comp.lang.c++
Titolo: Confronto tra due puntatori

Sul libro C++ di Stroustrup, terza edizione, è riportato che:
"Le implementazioni possono decidere se allocare due stringhe letterali
identiche come se fosse una. Per esempio: "
const char *p = "heraclitus";
const char *q = "heraclitus";
 
void g()
{
 if(p==q) cout << "one!\n"; //Il srisultato dipende dall'implementazione
}
Poi il libro aggiunge:
"Si noti che ==, quando viene applicato a puntatori compara gli indirizzi (i
valori deo puntatori) e non i valori a cui essi puntano".
Nel mio codice ottengo che p e q sono uguali, ma se scrivo la seguente riga
di codice:
std::cout << &p << " " << &q << "\n";
Ottengo poi che p punta all'indirizzo 0xfee1b108 e q all'indirizzo
0xfee1b104.
E questo mi sembra in contraddizione con l'ultimo punto riportato del libro
("Si noti che ==, quando viene applicato a puntatori compara gli indirizzi
(i valori deo puntatori) e non i valori a cui essi puntano".).
Cosa sbaglio nella mia interpretazione?
Grazie infinite.
Mr. Deckard

 0xfee1b104.
'&p' e '&q' denotano rispettivamente l'indirizzo delle variabili 'p' e 'q'. 
Quel valore è ovviamente diverso nei due casi trattandosi di due variabili 
distinte.
A te invece interessava il valore del puntatore (cioè l'indirizzo del 
letterale stringa), che puoi stampare in questo modo:
 std::cout << (void*)p << " " << (void*)q << "\n";
Max

 std::cout << &p << " " << &q << "\n";
Questi sono gli indirizzi dei puntatori.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

Max M. wrote:

Ecco grazie non riuscivo a stampare il loro indirizzo come in C, alla fine
mi devo essere un po' imbrogliato...
Grazie a tutti e due.
Mr. Dekcard

Newsgroup: it.comp.lang.c++
Titolo: Costruire DLL freeware

Salve,
qualcuno sa dirmi se esiste un compilatore freeware che mi compili DLL a 16
e 32 bit ?
Lo so che sono un sognatore... ma non si sa mai.
            CIAO E GRAZIE

 
wrote:

Su che S.O.
Su OS2 lo fa EMX, su Windows non so, forse il Cygnus, ma non ci 
giurerei, magari prima di scaricarlo, sono 13 MB, informati.
<< The show must go home ! >>
** Email replies to 
md7...@mclink.it
 **
visit my homepage at: 
http://www.volftp.tin.it/IT/IT/ITALIANI/rullo/index.htm
Newsgroup: it.comp.lang.c++
Titolo: Consiglio su libro

Sfogliando il catalogo dell'Apogeo ho adocchiato due manuali di C++
C++ Fondamenti di programmazione  di Deitel &amp; Deitel
e il secondo volume
C++ Tecniche avanzate di programmazione di Deitel
Qualcuno di voi sa darmi un giudizio? Vorrei imparare il C++ (so solo il C
per ora) e sto cercando un manuale valido.
Saluti
        Maurizio
P.S. Sono accetti anche consigli su altre pubblicazioni :)

P.S. Sono accetti anche consigli su altre pubblicazioni :)
Leggi le faq su 
http://cpp.programmazione.it
-- 
Marco Barisione (ICQ 84277092)

 P.S. Sono accetti anche consigli su altre pubblicazioni :)
Herbert Schildt, C++ (Guida Completa), McGraw-Hill
dice praticamente TUTTO sul linguaggio C++ ISO.
Per approfondire, poi:
Carlo Pescio, C++ Manuale di Stile, Gruppo Editoriale Infomedia
(
www.infomedia.it
)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

dice praticamente TUTTO sul linguaggio C++ ISO.
No, i suoi libri contengono molti errori per cui sono sconsigliati.
Prima di comprare un libro su C/C++ potrebbe essere una buona idea
leggere le recensioni su 
www.accu.org
.


 dice praticamente TUTTO sul linguaggio C++ ISO.
Ovviamente, il *peggior* libro sul C++ in circolazione.  Vedi le FAQ;
dove il commento a questo libro e':
"I numerosi errori non lo rendono un libro adatto per imparare il C++:
infatti il lettore inesperto non può accorgersene e rischia di
imparare cose errate."
O, su Schildt e le schifezze che scrive, le pagine web dell'ACCU;
oppure 
http://www.lysator.liu.se/c/schildt.html
 : dove si elencano *un
centinaio* di errori nel parallelo libro "C, guida completa".
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 (
www.infomedia.it
)
non mi sentirei di consigliarlo come unico testo di approfondimento. 
IMHO se devi consigliarne uno Effective C++ di Scott Meyers e` d'obbligo.
Se poi li puoi leggere entrambi e` ovviamente meglio.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 d'obbligo. Se poi li puoi leggere entrambi e` ovviamente meglio.
Consiglio umoristico: usare il flag di g++ -Weffc++ insieme alla std
lib



"umoristico" ?
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 "umoristico" ?
da' un mucchio di warning. e delle due l'una: o Myers dice idiozie (e 
non credo) o la lib std e' fatta a capocchia (e non credo)
se non umoristico, almeno paradossale 

 se non umoristico, almeno paradossale
oppure la terza opzione: il flag -Weffc++ non funziona molto bene...


 oppure la terza opzione: il flag -Weffc++ non funziona molto bene...
no, no, i warning sono corretti dal punto di vista di Myers
Newsgroup: it.comp.lang.c++
Titolo: std::cout e thread

Salve e buone feste a tutti.
Ho un problema con alcuni compilatori riguardo all'accesso di piu' thread
agli std::cout, cin e cerr.
Ecco il codice incriminato:
--- code ---
#include <iostream>
#include <string>
extern "C" {
#include <pthread.h>
};
void* cout_func(void* Arg);
int main(int argc, char *argv[]){
    std::string line = "Hello from the thread!\n";
    std::cout << "line   addr  : " << hex << &line << std::endl;
    std::cout << "String length: " << dec << line.length() << std::endl;
    pthread_t thread;
    pthread_create(&thread, NULL, cout_func, (void*)&line);
    pthread_join(thread, NULL);
}
void* cout_func(void* Arg){
    std::string* arg = (std::string*)(Arg);
    // alla riga seguente, si blocca.
    std::cout << "String addr   " << std::hex << arg << std::endl;
    std::cout << "String length " << std::dec << arg->length()
              << std::endl;
    pthread_exit(0);
}
--- end of code ---
Il codice reale modifica la stringa, ma il problema si ripropone anche
cosi', quindi penso sia colpa dell'implementazione degli iostream
predefiniti. In effetti il problema scompare se tutte le chiamate agli
stream sono nello stesso thread.
Al momento risolvo con una struct in cui passo due stringhe, e uso gli
std::c* in un thread apposito di stampa, che attende in background.
uno dei compilatori "incriminati" e' il gcc versione 2.96 20000731 (Red Hat
Linux 7.0).
Come si potrebbe risolvere la cosa? mutex, semafori? e dove?
Grazie a chiunque rispondera'.
Renato.

Renato wrote:
Sei OT su questo NG,pero' ti dico che ho compilato con g++ ver egcs-2.91.66
Red Hat 6.2 e va tutto OK.
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

 wrote :
| Renato wrote:
|
| Sei OT su questo NG,pero' ti dico che ho compilato con g++ ver
egcs-2.91.66
| Red Hat 6.2 e va tutto OK.
Ok, passo a 
icol.dev
, ma mi sembrava abb. std, per la portabilita', vabbe
dei thread posix... e cmq solo alcuni compilatori hanno problemi. Thx lo
stesso.
Newsgroup: it.comp.lang.c++
Titolo: I/O non formattato

Ho queste due linee di codice:
char array[] = " HAPPY BIRTHDAY ";
cout.write( array, 10 );
Quest'ultima istruzione invia in output i primi 10 byte di array, incluso il
carattere nullo che terminerebbe un'istruzione di output con cout  e <<!
Ora, capisco che invia in output i primi 10 byte, ma non capisco il discorso
del carattere nullo, cos'è lo spazio? E poi cosa significa che terminerebbe
un' istruzione cout <<?
Grazie mille!

 ha scritto nel messaggio
news:VvTR8.64299$j65.1...@twister1.libero.it...


 finisce. ciao.
(Le quote si mettono prima della risposta).  Sbagliato: quanto dici si
riferisce agli array di caratteri e non alle stringhe (std::string).
Inoltre un array di caratteri puo' essere ben piu' lungo del "numero
delle sue lettere" (esempio: char array[100]="foo") ed il carattere
terminatore '\0' non e' detto sia posto "automaticamente" (esempio:
char array[3]="foo").  Leggiti un buon testo introduttivo...
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 hscritto nel messaggio
news:8a1yaob...@mlinux.pd.infn.it...


Scusatemi, ma il mio problema piů grosso era capire cosa vuol dire che il
carattere nullo terminerebbe un' istruzione "cout <<"  mentre non č cosě per
"cout.write"!
Grazie in anticipo!
Ciao
Francesco

 Francesco
Allora: una stringa C, che non è std::string, ma una costante stringa o un
array di char o un char * sotto certe condizioni, ha alla fine un carattere
'\0' che indica: il carattere precedente è l'ultimo della stringa, non
andate più oltre, o voi che guardate. Quindi, quando l'operatore << di
cout( o meglio della classe ostream, o per rompere di ostream_withassign)
come qualunque altra funzione che lavori sulle stringhe, legge la stringa
fino alla fine e la stampa; poiché quel carattere indica la fine, quel
carattere lo fa smettere. Ciao
--
Paolo Giarrusso
Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.

Newsgroup: it.comp.lang.c++
Titolo: Applicazione nella barra dell'orologio

Ciao a tutti,
come posso fare, se č possibile, mettere la mia applicazione nella barra 
dell'orologio?
Ciao e grazie 

 dell'orologio?
Con VCL (Turbo C++ che ti ho indicato sopra) cerca la classe TTrayIcon.
Con wxDev-C++ (
http://wxdsgn.sourceforge.net
) cerca la classe wxTaskBarIcon.
Bye
Jarod
Newsgroup: it.comp.lang.c++
Titolo: Puntatore this per funzioni membro

Salve,
ho una domada semplice semplice. Ho una classe vettore su cui sono state
definite diverse operazioni.
Devo ora definire un nuovo insieme di operazioni impiegando quelle
precedentemente definite.
Vorrei utilizzare il puntare this in queste nuove funzioni per poterle
implementare velocemente, ma il compilatore non riconosce (*this).<funzione>
come funzione della classe.
E' possibile farlo?
Ovvero
La funziona Dot per la classe Vector3 è stata definita precedentemente.
Vector3& Reflect(const Vector3 &rkNormal)
{
(*this) = 2 * ((*this).Dot(rkNormal)) * rkNormal - (*this);
return *this;
}
l'errore è
error C2228: left of '.Dot' must have class/struct/union type
Grazie

 (*this) = 2 * ((*this).Dot(rkNormal)) * rkNormal - (*this);
Assegnare all'oggetto puntato da this e' volersi fare del male.
Ciao,
Nicola