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

Salve!
Sto cercando di implementare la funzione "Invia a..." presente in
programmi come Word e in tutte le icone quando si clicca con il dx.
Qualcuno sa come fare?
Ciao
Luca Bertoncello
(
luca...@biella.alpcom.it
)

Qualcuno sa come fare?
Il modo piu` semplice e` sviluppare l'applicazione con MFC e
i wizard del VC++ -- basta chiedere al wizard di creazione
dell'applicazione di avere supporto MAPI, e ti fa tutto lui, purche`
tu abbia il MAPI istallato (in particolare, un MAPI provider,
tipo Outlook Express eccetera).  Puoi avere piu` controllo
su cosa succeda gestendo OnFileSendMail nel tuo oggetto
documento; di default, questo usa OnSaveDocument per
salvare il tuo doc su di un file temporaneo, poi spedisce
detto file temporaneo per email.  Va anche gestita la
OnUpdateFileSendMail per togliere l'entry di menu se
MAPI non e` disponibile, eccetera.
Se vuoi gestire tu tutta la faccenda, studia, ad esempio per
VC++, VC++ Programmer Guide | Adding Program
Functionality | Details | MAPI Topics -- se non usi VC++,
immagino che la doc dell'ambiente di sviluppo avra`
un capitolo analogo, o se no dovresti trovare le stesse
informazioni anche in MSDN -- Platform SDK | Database
and Messaging Services | Win32 Messaging (MAPI).
Ci sono metodi d'accesso semplificati ("Simple MAPI",
ovvero SMAPI) o vari altri approcci; un capitoletto
"Adding a Send Command to an Application" in questa
parte delle doc inlinea del Platform SDK riassume
comunque le scelte che devi fare, le possibilita` a
tua disposizione, e quello che devi implementare nei
vari casi a seconda di quello che hai scelto.  Sempre
col Platform SDK trovi anche vari programmi di esempio
per i diversi "impacchettamenti" del Messaging.
Alex

Newsgroup: it.comp.lang.c++
Titolo: compilatore free della borland

Cia a tutti
Vorrei sapere se il compilatore C\C++ free della Borland (ver 5.5)
scaricabile direttamente dal sito sia completo, cioè si possa compilare
qualunque tipo di codice sorgente C\C++.
Grazie
Salvo

 qualunque tipo di codice sorgente C\C++.
Se parliamo di C++ standard allora direi di si, ma la versione freeware non
ti consente di utilizzare i framework.

 wrote in message
news:agk68l$sj$2...@lacerta.tiscalinet.it...

Potrei avere una semplice spiegazione di cosa č un framework?
Grazie
Fabio.
Newsgroup: it.comp.lang.c++
Titolo: Aiuto facile!

Chiedo scusa ho un problema :
Mi trovo in una sottofunzione in C da questa chiamo un'altra sottofunzione
che mi ritorna un valore int. Fin qui tutto ok. Il valore lo ritorna
correttamente
e lo assegna ad una variabile, ma le altre variabili locali(della funzione
chiamante) al ritorno "non ci sono + " nel senso che non conservano il
valore precedente, sono indefinite.Come mai? Non credo di aver fatto errori,
da cosa puo' dipendere? Sto impazzendo!
Grazie a chi mi puo' aiutare.
Acrosstheuniverse.

 ha scritto nel messaggio
news:p_fy8.15568$W9.3...@twister2.libero.it...


Questa č la mia funzione chiamante, dove i č una variabile globale:
int searchposition(int *buffer,struct istruzione *octable)
{int sx=0, dx=400,m;
 int fine=0;
 do
   {m=fabs ((sx+dx)/2);
    /* alla posizione m ho il byte da confrontare con buffer */
   i=confronto(buffer,(octable+m)->byte1);
<------------------- CHIAMATA ALLA FUNZIONE
                             // A questo punto la "i" assume il valore che
cercavo,ma "sx" "dx" e "m" sono "non valutabili"
   if (i==0)
       fine=1;
   if (i>0)
      dx=m-1;
   if (i<0)
     sx=m+1;
    }while(!fine);
return (m);
}
La procedura chiamata č :
int confronto(int *buffer, char *chiave) /* Controlla se sono uguali due
vettori di interi da 8 bit */
{int chiave2[8];
 int fine=0;
 int flag[2]={0,0};
 for (i=0 ;i<=8;i++)
  chiave2[i]=chiave[i]-48;
 i=0;
 do
{if ((buffer[i])==(chiave2[i])) /* Se sono uguali */
    flag[0]=1,flag[1]=1;
 if ((buffer[i])<(chiave2[i])) /* Se buffer minore di chiave */
    flag[0]=0,flag[1]=1;
 if ((buffer[i])>(chiave2[i])) /* Se buffer maggiore di chiave */
    flag[0]=1,flag[1]=0;
fine=flag[0]*flag[1];
i++;
}while(fine==1 && i<8);
if (flag[0]==0 && flag[1]==1)
    return (1);
else if (flag[0]==1 && flag[1]==0)
    return (-1);
else if (flag[0]==1 && flag[1]==1)
    return (0);
}
Ho controllato facendo il debugging + volte e le funzioni vanno bene, tranne
che non mi conserva il valore delle mie variabili... :-((
Perchč ? Secondo voi?
Grazie x il tempo perso !!!
CIAO
Acrosstheuniverse.

   chiave2[i]=chiave[i]-48;
chiave2 ha 8 elementi. Il tuo ciclo va da 0 a 8 (9 volte).
Ciao
Alex

 ha scritto nel messaggio
news:3cc9a077$0$232$cc9e...@news.dial.pipex.com...

Newsgroup: it.comp.lang.c++
Titolo: il classico cubo rotante con le opengl

Salve a tutti,
sto cominciando a pasticciare con le opengl e sto seguendo alcuni
tutorial.
Genero le 6 facce e poi gli metto una rotazione.... ho notato che
durante la rotazione le facce non si comportano come dovrebbero,
ovvero una la vedo sopra quando dovrebbe essere dietro, e nella
rotazione continuo a vedere questo strano fenomeno.
In definitiva e' la sovrapposizione di oggetti che mi frega...
Ho provato a pasticciare con le funzioni che coinvolgono Depth ma ho
ottenuto uno strano effetto che riga il cubo e gli cava i colori nelle
facce (sebbene dai bordi , sembra che ruoti bene) , ho provato con
glCullFace, ma non ho capito bene come si usa.
il programma lo sto facendo con devcpp , ho usato il sample che devcpp
proprone quando si apre un progetto per realizzare le varie facce .
 qualcuno sa cosa devo fare? Grazie mille...
E.p.

 ...
Ci dispiace ma hai sbagliato NG, qua sei OT, in quanto parliamo di C++
standard.
Potresti chiedere su it.comp.giochi.sviluppo dove sicuramente sapranno
risponderti adeguatamente.
ciao,
Nids
ps: se mai su it.comp.giochi.sviluppo posta anche il codice cosi' possono
capire dove e' il problema senza interrogare alcuna sfera di cristallo.


Grazie, ora provo la' ;)
Ciao !
E.p.

Newsgroup: it.comp.lang.c++
Titolo: Per iniziare.........

ciao a tutti, un amico vuole iniziare a fare i primi software con C e chiede
i seguenti consigli:
1) č meglio iniziare con C oppure con C++?
2) quale libro ritenete valido per neofiti?
3) Quale č il miglior compilatore che giri sotto windows?
Ciao a tutti Grazie.

 Ciao a tutti Grazie.
Borland C++ Builder / Visual C++ 6
Ciao

 Ciao a tutti Grazie.
Ciao :o)
Gabriele

Newsgroup: it.comp.lang.c++
Titolo: Problema per il passaggio dei parametri tra c++ ed assembly

Problema per il passaggio dei parametri tra c++ ed assembly
Il problema consiste nel passaggio di un vettore di caratteri o interi dal
linguaggio c++ a quello assembly. Ne ho provate tante ma non ci sono
riuscito.... spero di trovare in voi la mia risposta.
Anche solo un consiglio...
Sono ben accetti tutti i consigli....
Perfavore rispondetemi all'indirizzo email 
c-...@libero.it

 
No no no. Scrivi qui leggi qui.
Aaron
Newsgroup: it.comp.lang.c++
Titolo: ORM C++

Stavo facendo un po' una ricerca su strumenti e librerie che gestiscano il
database non più come un insieme di connessioni e query ma attraverso la
tecnica ORM.
In altri linguaggi ho trovato molto materiale. Per il c++ poco.
Quali sono le soluzioni migliori e/o più stabili?
Grazie
-- 
| /
| \Byte - Andrea Briganti
http://kbyte.ciotoni.net
 - 
http://cslug.linux.it

 Quali sono le soluzioni migliori e/o più stabili?
Mai usato nulla. :-)
Ma wikipedia riporta:
http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B
Facci sapere come si sviluppa la cosa.
Ciao,
Giulio
--

Newsgroup: it.comp.lang.c++
Titolo: clrscr() ---> ???

Salve a tutti.
Qualcuno di voi saprebbe dirmi quale comando usare
in MS Visual C++ 6.0 per fare il "clear" dello "screen" (ambiente dos)?
Grazie a chi vorrà rispondermi.
©Scaccomatto

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Linux:      it.comp.linux.development
                it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti

se usi il visual c++ come fai a lavorare sotto dos???
Tuttavia sotto dos lo schermo si cancella con:
system("cls");
"©Scaccomatto" <x...@yyy.zzz> ha scritto nel messaggio
news:8h5i85$vuq$1...@pegasus.tiscalinet.it...


 in MS Visual C++ 6.0 per fare il "clear" dello "screen" (ambiente dos)?
System("cls")
Ciao!
--
Marco "DUFF" Palermo
Marc...@Hotmail.com
http://www.marcoduff.cjb.net/

 wrote in message
XbCZ4.58627$VM3.4...@news.infostrada.it...

In quale libreria?
Il compilatore mi dą errore! (error C2065: 'System' : undeclared
identifier).
Grazie!
Ciao

> In quale libreria?
Scusa, pensavo di averlo scritto!
La libreria è la stdlib.h


Newsgroup: it.comp.lang.c++
Titolo: Mouse in C++ Dos Borland: Si può?

Come da oggetto


ICQ #34602650

Si puo... solo che non il compilatore non fornisce
alcuna libreria a riguardo. Io da turbo pascal
utilizzavo una unit che mi ero realizzato, se la
ritrovassi potrei inviartela, ma mi pare difficile.
Comunque si faceva tutto tramite chiamate a interrupt.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

o ASM , ecc... una marea di librerie....per tutti i gusti
Per esempio puo' provare il sito 
ftp://ftp.flashnet.it/pub/simtelnet
nelle directory MOUSE, C, C++, ASM.
Bye.
Joseph Parrello - OWL/C++ Programmer
http://JoParrello.freeweb.org
(
jopar...@geocities.com
)
Newsgroup: it.comp.lang.c++
Titolo: come leggo le FAQ

Gentilmente mi spiegate come leggere le faq?
Grazie
                                                 H

                                                 
Ehm....te lo spiego in pochi passi
 1 - apri il file delle FAQ
 2 - se usi gli occhiali, mettili altrimenti rinfresca gli occhi :-P
 3 - leggi da sinistra a destra dall'alto verso il basso una riga alla
volta...
--
Rhymes - 
rhy...@myself.com
http://www.foxhound-games.it
"Sapete cosa fa un InputStream quando
gli si racconta una barzelletta? Reader..."

 Gentilmente mi spiegate come leggere le faq?
http://cpp.programmazione.it
Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

Newsgroup: it.comp.lang.c++
Titolo: Dov'è THINKING IN C++?

Cerco il link del sito dove è possibile scaricare THINKING IN C++.
Grazie

 Grazie
www.bruceeckel.com
-- 
Ciao,Marcello   
ig...@dist.unige.it

 
anche qui!
http://ftp.unina.it/pub/docs/eckel/TIC2e/
Newsgroup: it.comp.lang.c++
Titolo: Io non mi arrendo!!

Gentili signori,
inanzitutto un grazie di cuore per l'interessamento relativo al msg:"Un po'
O.T. comunque è relativo"(anche a chi ha tentato di scoraggiarmi,viceversa mi
ha intrippato il doppio!probabilmente era questo lo scopo di quei msg).
Ho fatto molte(se non tutte) delle cose che mi avete consigliato,ma non sono
riuscito a trovare il testo che cercavo neanche alla Jackson e il tetso che
illustra il PD32 è senz'altro una buona cosa,ma sicome io e l'inglese siamo
"parenti alla lontana"preferisco imparare le basi sugli x086 da un manuale in
italiano pittosto che propinarmi il manuale del pd32 e poi i manuali in
INGLESE dei costruttori anche se lo farei volentieri se fossi in grado di
studiare dall'inglese scritto;me la cavo appena a leggerlo,sto migliorando.
Ho invece trovato il seguente testo:
Assembler per l'80286/80386 
W.H.Murray,C.H.Pappas
McGraw-Hill
Un po' vecchiotto.
Qualcuno lo conosce?
E' indicato per me chi parte da zero sull'assembler?
Ciao a tutti e grazie per la collaborazione,spero in un futuro non troppo
lontano di potermi sdebitare,
                      Paolo

E' indicato per me chi parte da zero sull'assembler?
Io avevo gia' conoscenze sommarie sull'assembler, e usando questo
testo ho imparato ad usarlo nel modo migliore.
Ricordo anche che come supporto per comprenderlo meglio mi lessi quasi
tutti i sorgenti assembler dei comandi sulle stringhe della libreria
del Borland C.
Adesso non me lo ricordo bene, pero' credo che la spiegazione dei
comandi sia abbastanza chiara.
Ovviamente per un neofita dell'assembler sara' opportuno saltare, a
meno di non conoscere bene le caratteristiche dei nuovi processori, le
istruzioni del 286/386 e limitarsi, almeno per i primi tempi, a quelle
del buon vecchio 8086.
Andrea
------------------------------------------------
combatti anche tu il "nano scemo" :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: mem[...]:=... in c++ ?

esiste in c++ una funzione simile a mem[...]:=... del pascal ?
grazie

...


Mem[$B800:0000] = 'A';
meglio usare char e` piu` facile che un char sia codificato su un 
singolo byte, mentre int e` generalmente codificato su piu`
byte (ovviamente tutto cio` non e` assolutamente standard)
char* p = new(0xb8000000) char;
// new con sintassi di placement per evitare espliciti cast
*p ='A';
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

 *p ='A';
Vincenzo Ciancia

cerco di risolvere con "unsigned" 
Grazie per il buon.... : - )
In effetti poi specificare unsigned e` ancora meglio.
Per quanto riguarda la sintassi di placement, essa si utilizza per
allocare un certo oggetto ad uno specifico indirizzo.
In pratica scrivere
T* Ptr = new(Addr) T;
Addr deve essere di tipo void*
e` sostanzialmente equivalente a Ptr = (T*) Addr;
ma consente di nascondere un cast esplicito.
Su un oggetto allocato cosi` pero` non e` lecito eseguire una
delete (anche se sarebbe gradevole che l'operatore delete
potesse capire la situazione e comportarsi di conseguenza).
Comunque con le classi e` compito del programmatore ricordarsi
di distruggere esplicitamente l'oggetto: Ptr->~T();
Infine la sintassi e` stata pensata per i sistemi embeded.

Newsgroup: it.comp.lang.c++
Titolo: C'è qualcuno/a ke se ne intende?

Ho scritto questa e-mail, con lo scopo di trovare qualcuno/a ke mi possa
dare qualke delucidazione (a titolo informativo) per quello ke riguarda la
struttura, la realizzazione (in ambito C++), il funzionamento dei cosidetti
"virus".
Ripeto il concetto: è solo a scopo informativo. Odio i virus in generale, e
proprio per questo voglio imparare a conoscerli meglio.
Penso di dover aggiungere, ke conosco l'ambiente C++. Esso è stato ampio
oggetto di studio per tutto il precedente anno scolastico.
                                                                       CIAO
E GRAZIE FIN DA ADESSO.

proprio per questo voglio imparare a conoscerli meglio.
Dubito di queste parole. Comunque per i virus e' quasi obbligatorio
conoscere l'assembler... .

ampio oggetto di studio per tutto il precedente anno scolastico.       
Butta nel  kesso il  K++ e impara  l'assembler. E gia'  ce ci  sei ance 
l'italiano,  ka??o. Usare  la  k al  posto  della c  o  ch rende  molto 
difficile la lettura del testo.                                         
-- 
 (o-  | Un OS per domarli, Un OS per trovarli,
 //\  | Un OS per ghermirli e nel buio incatenarli
 V_/_ | Nella terra di Redmond, ove l'ombra cupa scende...
http://pinguin.linuxave.net
            r punto salmaso at inwind punto it

conoscere l'assembler... .
no, no :  ora va di moda il visual basic di office .....

 "virus".
mah, da che so io i virus si scrivono in assembly e non in C++.
Tutt'al più puoi scrivere uno scheletro del virus in asm e poi
utilizzare delle funzioni scritte in C. Se intendi C++ per utilizzare
template, classi e cose varie... non sono sicuro che qualcuno ci abbia
mai provato. Se vuoi cominciare tu!

Odio i virus in generale
Mi sembri il solito komunista... quindi a questa frase non ci credo!
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Vettori dinamici a due dimensioni

Creo un vettore doppio dinamico e lo distruggo con il seguente 
procedimento all'interno di una funzione; ma il programma si blocca 
quando riutilizzo la funzione
  double **xgraf;
  xgraf=new double*[100];
  for (int jc=0;jc<100;jc++)
    xgraf[jc]=new double[10];
.
.
.
.
  for(int jc=0; jc <100;jc++)
    delete []xgraf[jc];
  delete []xgraf;
C'e' un errore nel codice? o e' un problema di memoria?
-- 
Ciao
Franco

 quando riutilizzo la funzione
Il tuo codice non mi da nessun errore, posta la funzione.
Ciao

 
Valuta l'utilizzo di vector della STL. Si fa carico di tutti i dettagli 
relativi alla gestione della memoria.
HTH
===
Gianni

Newsgroup: it.comp.lang.c++
Titolo: Keyword auto

Come mai esiste la keyword "auto" in C++?
Vi riporto un estratto di Thinking In C++:
"
The keyword auto makes this explicit, but local variables
default to auto so it is never necessary to declare
something as an auto.
"
Il "this" si riferisce ovviamente alla possibilità di creare
variabili automatiche (locali).
E' veramente inutile questa keyword?
--
Lawrence Oluyede
rhy...@myself.com

auto viene da C.
Uno puo scrivere in C.
int method()
{
         static j;
         auto k;
         k = j;
         j ++;
         return k;
}
ma in c++, ci sono errori
auto.cpp: In function `int method ()':
auto.cpp:4: ISO C++ forbids declaration of `j' with no type
auto.cpp:5: ISO C++ forbids declaration of `k' with no type
Allora 'auto' non e utile per niente in C++.


 Allora 'auto' non e utile per niente in C++.
Auto serve a dichiarare una variabile definendo la sua memorizzazione ( la
sua vita, per intenderci ) fino al termine del blocco in cui è stata
dichiarata.
La sua inutilità sta nel fatto che, di per sè, il c++ definisce tutte le
variabili come auto, a meno di impostazione del programmatore.
Da notare che memorizzazione e scope sono due cose differenti, per questo ho
usato la parola memorizzazione.
Cesare

variabili come auto, a meno di impostazione del programmatore.
Come pensavo...un'eredità del passato...
--
Lawrence Oluyede
rhy...@myself.com

 tipo di dato che hai omesso.
Qundo mancano, sono int (in C).
G

 Qundo mancano, sono int (in C).
non piu`. Lo standard C99 proibisce la dichiarazione implicita dei tipi 
delle variabili.
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
Newsgroup: it.comp.lang.c++
Titolo: std::stringstream in ambiente multithread.

Ho un problema con un programma che ho scritto, che continua a crashare
in multithread. Mentre non ho mai riscontrato alcun tipo di problema se
lo lancio in monothread.
L'ambiente è un Solaris 8 con gcc 3.2
Dopo aver fatto milioni di prove, sembrerebbe esserci dei problemi con
gli stringstream. Vi chiedo se sapete se ci sono problemi ad utilizzare
queste classi in modo multithread. Premesso chiaramente che non ci sono
variabili di questo tipo condivise tra i vari thread.
Sarebbe anceh interessante sapere se ci sono tools che permettono dei
controlli sulla gestione della memoria in ambienti multithread.
Grazie mille,
Mirko

variabili di questo tipo condivise tra i vari thread.
Per quanto rigurda stringstream non posso aiutarti ma sicuramente le 
std::string in ambiente multi-thread devono essere usate con attenzione 
quando l'implementazione e' di tipo reference counted (quasi sempre lo 
sono).
Se fai qualcosa del tipo:
std::stringstream oss;
oss << "prova";
sendTextToAnotherThread( oss.str() );
IMHO potresti avere qualche problema
Ciao
Fabio
Newsgroup: it.comp.lang.c++
Titolo: avrà senso?


grazie cmq per l'intenso scambio di corrispondenza che mi permette
di scoprire un'infinità di cose nuove. Continuate ....
                        massimo

 ecc..?
Il problema sta nel fatto che con un compilatore vecchio potresti avere
dei problemi a far funzionare tutti i costrutti e le librerie del C++
standard.
EMG

 wrote in message
37F80561...@flashnet.it...


 da quale ver.? 
Il g++ 2.95 e' uno dei compilatori piu' aderenti allo 
standard (molto piu' standard di vari compilatori
commerciali). L'unica cosa che manca e' il supporto
per export e compilazione separata dei template (ma
per il momento manca in tutti i compilatori).
Il grosso problema dei compilatori gnu e' la libreria
standard che non e' molto standard, e in alcune parti
(es. iostream) fa veramente schifo.
Le versioni precedenti sono un po' meno standard:
- egcs 1.1 e succ.: standard, tranne qualche particolare.
- egcs 1.0.x: mancano i namespace
- g++ 2.8.1: grossi problemi, abbandonato
- g++ 2.7.2 e prec.: lontanissimi dallo standard.
	Mauro

 su diversi siti, sono compatibili con gli standard di cui sopra?
Penso siano fra i più aggiornati.
EMG

 wrote in message
37FB8957...@flashnet.it...


Newsgroup: it.comp.lang.c++
Titolo: Stringhe e array di caratteri

Sto cercando  di imparare il c++ ma se in un prog provo a scrivere
Edit1->Text='prova';
il compilatore mi segnala che c'è un errore perché c'è + di 1 carattere
ma se scrivo
Edit1->Text=Edit1->Text+'x';
tutto funziona.
stessa cosa se gli passo un array di caratteri.
come posso fare? tnx

 stessa cosa se gli passo un array di caratteri.
Evidentemente e' simile ad una std::string, cioe' concatena alla stringa il
carattere 'x'.
--
ciao,
Cecco
---------
Visit: 
www.sourceforge.net/projects/dlab
Home Page: 
http://dlab.sourceforge.net/
Dlab-developer mailing list
https://lists.sourceforge.net/lists/listinfo/dlab-developer

Grazie

 il compilatore mi segnala che c'č un errore perché c'č + di 1 carattere


Newsgroup: it.comp.lang.c++
Titolo: SW ecomm italiano

E tutto cio' col C++ che c'azzecca?
Ciao,
Nicola

C'entra che varii nostri attuali VAR stanno scrivendo varie "cose" che
girano attorno e/o assieme a RoboMerchant con i linguaggi piů diversi -
per cui riteniamo che i varii tecnici possano essere interessati ad un
pacchettizzato che poi possono integrare...
Ciao, Marco

Newsgroup: it.comp.lang.c++
Titolo: Chiavi di registro

 
          Ciao a tutti
Vi scrivo per un problema.
Sto utilizzando il Visual C++ ed ho bisogno di leggere un valore (stringa)
in una chiave di registro.
Sapreste dirmi come fare ??
o darmi qualche link utile ??
Grazie mille
LD
PS
Se volete scrivermi in privato eliminate gli
asterischi (*) dall'e-mail
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
server 
newsgroups.borland.com
 (prevalentemente in
inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Consiglio: "Printer Driver Windows i32/i64, Mac, Linux???"

Devo progettare un driver di stampa per WINDOWS 9x, NT, 2000, XP, VISTA, 
MAC, LINUX sia per archittettura i32 che i64. Per ora ho creato cose 
simili solo per sistemi Microsoft e non per altre piattaforme, ma vorrei 
dare la possibilità anche agli altri utenti. Cosa mi consigliate di fare?
Io ho sentito che il compilatore "gcc" funziona anche sotto piattaforme 
Microsoft, ma non sò se sia possibile compilare DRV, DLL, VxD, SYS oltre 
che EXE e COM. Un unico compilatore mi eviterebbe di riscrivere alcune 
pagine di codice.
Grazie fin d'ora per le eventuali dritte.
Alessandro Marini

 pagine di codice.
Solo alcune (e non sono neanche troppo convinto). Le architetture sono
troppo diverse, dal punto di vista dei driver. Credo che la cosa
migliore sia condurre due progetti differenti (completamente differenti)
e al massimo riutilizzare lo strato hardware (e non ne sono pure troppo
convinto).
Questo per Windows e Linux, per Mac non so.
Comunque, auguri.

 Comunque, auguri.
Grazie Mille! Penso proprio che seguirò il tuo consiglio!
Newsgroup: it.comp.lang.c++
Titolo: EOF

salve, ho un piccolo problema con l'uso della costante definita nella
libreria <stdio.h>.... ecco il listato del programma:
#include <stdio.h>
   main()
{
    int c, i, nwhite, nother;
    int ndigit[10];
    nwhite = nother = 0;
    for (i = 0; i < 10; ++i)
        ndigit[i] = 0;
    while ((c = getchar()) != EOF)
         if (c >= '0' && c <= '9')
            ++ndigit[c - '0'];
         else if (c == ' ' || c == '\n' || c == '\t')
            ++nwhite;
         else
            ++nother;
    printf("cifre =");
    for (i = 0; i < 10; ++i)
       printf(" %d", ndigit[i]);
    printf(", spaziature 0 %d, altri = %d\n", nwhite, nother);
      system("PAUSE");
}
il problema è che non raggiungo mai la condizione di c=EOF...... ho
controllato il valore di EOf nella libreria stdio.h e sul dev-c++ che uso mi
dice che è : #define EOF (-1)......
sono proprio ale prime armi..... che cosa sbaglio?
in teoria questo programma servirebbe per contare spazi, caratteri e
cifre...... provate e fatemi sapere

 cifre...... provate e fatemi sapere
Prova a postare su
it.comp.lang.c dato che il priogramma è in C

Newsgroup: it.comp.lang.c++
Titolo: Help for TURBO c++ 4.5!

Qualcuno saprebbe dirmi come installare ed eseguire TURBO C++ 4.5 sotto
Windows 98?
Grazie!
Mr_NAT


Newsgroup: it.comp.lang.c++
Titolo: Array di puntatori e array di caratteri

Salve a tutti, spero di non essere OT, ma ho un problema con la 
programmazione per arduino (dovrebbe essere vicino al c++).
Ho un array di puntatori e devo assegnare  il valore di ogni carattere 
puntato ad un array di caratteri.
io ho:
uint8_t* buf[30]
vorrei assegnare il valore di ciascun carattere puntato a:
int pippo[30]
pensavo che facendo un
for (int i=0;i<30;i++)
{
   pippo[i] = buf[i]
}
funzionasse ma il problema e' che pippo[i] e' sempre 0
Potete aiutarmi?
grazie

Il 02/06/2011, LHC ha detto :

Scusate, risolto
pippo e' diventato String
posso fare pippo += buf[i]
in questo modo posso manipolare pippo come stringa
grazie ancora

Newsgroup: it.comp.lang.c++
Titolo: DBGrid in C++Builder 5

Ciao a tutti.
ho un problemino abbastanza stupido ma che non riesco a risolvere.
Sto scrivendo un programma gestionale utilizzando C++Builder 5 e dovendo
scegliere in una DBGrid alcuni record da processare, come faccio, dopo aver
selezionato diverse righe, a deselezionarne una senza che mi si
deselezionino anche tutte le altre?
grazie per l'aiuto
Luciano Landi

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Domanda vector

Se voglio scrivermi una funzione che mi trovi il valore massimo contenuto in 
vettore, e voglio che questo vettore possa essere sia un vector di double 
che di long o che di int come faccio?
Grazie a tutti,
Ciao,
    Beppe. 

Beppe wrote:

#include <vector>
#include <algorithm>
...
std::vector<type> vettore;
std::vector<type>::const_iterator max = 
std::max_element(vettore.begin(), vettore.end());
type the_max = *max;
-- 
MSN: sirpsycho_78 -at- hotmail dot com
the last action hero... 
http://tinyurl.com/bgy5w

 ha scritto nel messaggio 
news:3t0t5cF...@individual.net...

Grazie mille, ma se volessi anche sapere l'indice?
In più se io voglio generare una funzione che riceva come argomento un 
puntatore ad un vettore, il quale può contenere qulsiasi oggetto, come posso 
fare?
Grazie ancora,
    Beppe. 

 
in che senso scusa? come ho appena scritto...
template<class T> T
getMax(std::vector<T> * vettore)
{
    return *std::max_element(vettore->begin(), vettore->end());

Newsgroup: it.comp.lang.c++
Titolo: Problema strano seconda puntata :(

Salve, potreste dirmi perché il seguente programma non funziona? 
#include <iostream>
#include <string>
int pos [10];
int how = 0;
/* 3 funzioni scritte da me per operare sulle stringhe */
/* Inserisce la stringa str nella stringa s, partendo dalla posizione where 
di s */
string insert_st (string s, int where, string str) {
string half1, half2;
        for (int i = 0; i < where; i++)
                half1 += s[i];
        for (int i = half1.size(); i <= s.size(); i++)
                half2 += s[i];
        return half1 + str + half2;
};
/* elimina la sottostringa che va da begin a end dalla stringa s */
string delete_st (string s, int begin, int end) {
string st = s;
        for (int i = begin; i < (begin + end); i++)
                st = s.erase (begin, 1);
        return st;
};
/* sostituisce nella stringa s, una porzione di stringa (newstr) partendo 
dalla posizione where */
string replace_st (string s, int where, string newstr) {
        s = insert_st (s, where, newstr);
        s = delete_st (s, where + newstr.size(), newstr.size());
        return s;
};
/* Fine 3 funzioni */
/* Conta le occorrenze di s in stringa e memorizza le posizioni nella array 
pos[] */
bool ce (string s, string stringa) {
        for (int i = 0; i < stringa.size(); i++)
                if (s[0] == stringa[i]) {
                        pos[how] = i;
                        how++;
                };
                if (how > 0)
                        return true;
                else
                        return false;
};
/* Sostituisce tutte le s in stringa nelle varie posizione memorizzate in 
pos[] */
string aggiorna (string s, string stringa) {
          for (int i = 0; i < how; i++)
                replace_st (stringa, pos[i], s);
          return stringa;
};
/* Ora dico, perché l'output del programma è 
_____ 
invece che
___g_ ? 
*/
int main () {
        ce ("g", "luigi");
        std::cout << aggiorna ("g", "_____") << std::endl;
        return 0;
}
Ho provato a fare replace_st ("_____", 3, "g") e funziona.
Spero possiate aiutarmi
Grazie
--
Luigi

 [CUT].
Una sola domanda... perchè reinventare l'acqua calda?
1) -> insert
2) -> erase
3) -> replace
Saluti  Manlio Perillo

Saluti  Manlio Perillo
Ciao
--
Luigi
P.S.: Cmq il problema l'ho risolto
Newsgroup: it.comp.lang.c++
Titolo: C Builder

Salve, desidererei porre due domande:
Qualcuno sa come vengono realizzate quelle finestre "invisibili" cioč che
riproducono lo sfondo :-I
Sono alla ricerca di un manuale od una guida al c builder della borland, on
line od eventualmente usato.
Grazie
--
Dott.. Federico Sp.
WebMaster: 
http://utenti.tripod.it/veterinario/
   ("L'ARCA" Il Vortal dei
medici
veterinari *Aiutalo a crescere*)
WebMaster: 
www.veterinario.artshost.com
 (Gruppo Veterinario)

 line od eventualmente usato.
Wrong Newsgroup :-)
Quello giusto č: it.comp.programmare.win32
Domenico Barra
Newsgroup: it.comp.lang.c++
Titolo: Moltiplicazione di caratteri!

Ciao ,sono incappato in una cosa tanto banale che anche il libro ci sorvola e nn 
sò come uscirne...come faccio a moltiplicare un numero con un carattere???
Cioè se voglio stampare 6 asterischi ho notato che ("*" * 6) non funziona...in 
VB era semplice...ma qui...
Come si fà??
Scusate 'ste domande :-(
Alex 

 VB era semplice...ma qui...
Non l'ho mai sentita chiamare "moltiplicazione", ma si puo' fare cosi':
#include <string>
#include <iostream>
int main() { std::cout << std::string(6, 'a'); }
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila


Io invece non ho mai visto questo costrutto sul libro :-( ...è deprimente perchè 
pensi di studiare bene e poi ti chiedono di fare un esercizio che richiede una 
cosa che non hai mai visto; come faresti senza il costrutto di cui sopra a 
risolvere questo problema? :
"Scrivete un programma che legga la misura del lato di un quadrato e visualizzi 
un quadrato il cui lato è formato dal numero di asterischi digitato. Gli unici 
caratteri stampati sono gli  asterischi e gli spazi. Il programma deve 
funzionare per qualsiasi numero intero tra 1 e 20. Per esempio, se l'utente 
digita 5, il programma visualizza: "
*****
*       *
*       *
*       *
*****
Ciao
Alex 

 risolvere questo problema? :
Al limite avrei improvvisato qualcosa di simile:
stampavo il lato orizzontale con una riga del tipo
for(unsigned int i=0;i<L;++i) cout << "*";
poi quelli verticali (ometto il codice)
quindi l'altro lato orizzontale.
Ciao.


Bah, penso allora che sia il libro...non sono ancora al for ma alla fine dei 
cicli iterativi con if...else e while;
Comincio a pensare che il libro volesse che costruissi 20 quadrati con gli 
asterischi....tanto per usare cout
Ciao
Alex 


Ci sono arrivato....penso che facendo un ciclo iterativo while che conti tante 
volte quanto misura il lato dovrebbe andare....altre, non me ne vengono per 
completare l'esercizio.
Ciao
Alex 


Questo č quello che ho buttato giů dopo 2 ore di scervellamenti....funziona...ma 
sarei curioso di sapere come avreste proceduto se fosse arrivati allo studio dei 
soli cicli iterativi...magari c'č un altro modo.
Ciao
Alex
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main ()
{
    int lato;
    int riga=1;
    int colonna=1;
    int spazi;
    int fondo=1;
    cout << "inserisci il lato del quadrato oppure -1 per uscire: ";
    cin >> lato;
    while (riga <= lato)
       {
       cout << "* ";
       riga++;
       }
    while (colonna <=(lato-2))
          {
          cout << "\n*";
          spazi= 1;
          while (spazi !=(lato-1))
              {
                cout << "  ";
                spazi++;
               }
                cout << " *\n";
                colonna++;
           }
    while (fondo <=lato)
        {
          cout << "* "<< endl;
          fondo++;
         }
      system("PAUSE");
      return 0;
       }
Newsgroup: it.comp.lang.c++
Titolo: Eccezzioni con l'operatore new

Salve a tutti!
Io lavoro con C++ Builder 4.0 ma il mio problema riguarda il C++ 
standard.
Ho fatto un piccolissimo programmino che crea un oggetto con new:
TipoOggetto *Ogg = new TipoOggetto();
Ora vorrei intercettare l'eccezzione nel caso l'operatore new
fallisca e so che l'eccezzione esatta è std::bad_alloc.
quindi faccio:
#include <exception>
...
void funz (void)
{
  TipoOggetto *Ogg = NULL;  
  try
  {
    Ogg = new TipoOggetto();
  }
  catch (std::bad_alloc)
  {
    // Faccio qualcosa.
  }
}
...
Il problema è che il compilatore mi dà un errore dicendomi
che bad_alloc non è membro di std.
Sbaglio qualcosa?
E' il C++ Builder che da problemi?
Aiuto!!!

Premesso che ho sempre e solo utilizzato il Visual (ridete, ridete...)
se il costruttore dovesse fallire per insufficienza di memoria, il puntatore
restituito è NULL, perciò ti basta fare un test su tale puntatore.


Questo perche' VC++ e', anche in questo, difforme dallo standard.
Secondo lo standard infatti se new non riesce ad allocare memoria deve
lanciare l'eccezione std::bad_alloc. Il comportamento che descrivi e'
ancora disponibile chiamando new(std::nothrow) pippo;
Ciao,
Nicola

 #include <exception>
devi includere <new>.
Manlio Perillo

 E' il C++ Builder che da problemi?
Penso di si. Il BCC55 lo compila tranquillamente.
EMG

 devi includere <new>.
Con il BCC55 sembra non sia necessario alcun include particolare per
usare std::bad_alloc. Lo standard cosa dice al riguardo?
EMG

usare std::bad_alloc. Lo standard cosa dice al riguardo?
L'header che definisce std::bad_alloc e' <new>; il fatto che questa
definizione sia presenta anche includendo altri header non e' vietata
ma sfruttare questa coincidenza significa scrivere codice non
portabile.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 usare std::bad_alloc. Lo standard cosa dice al riguardo?
std::bad_alloc  e' definita in <new>, quindi dovrebbe essere
necessario includere <new>.
Siccome gli header standard possono includere altri header 
standard, alcuni compilatori potrebbero compilare senza errori
anche senza tutti gli #include, ma la cosa non e' portabile.
	Mauro

 portabile.
Ok, grazie.
EMG

 Lo standard cosa dice al riguardo?
Nell'ultimo draft dello Standard bad_alloc è definito nella
sezione riguardante <new>.
Manlio Perillo
Newsgroup: it.comp.lang.c++
Titolo: Associative Container Class (STL)

Qualcuno ha qualche esempio molto semplice su come utilizzare gli
Associative Container messi a disposizione da STL ?
In particolare vorrei utilizzarli per un semplice array associativo
che data una chiave stringa, univoca, mi ritorni il valore
corrispondente.
grazie in anticipo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 corrispondente.
#include <map>
int main()
{
  std::map<std::string,int> mappa;
  mappa["pippo"] = 1;
  mappa["pluto"] = 0;
  return mappa["pippo"];
}
Ciao,
Nicola

 #include <map>
[CUT]
Scusate se mi intrometto,
ma allora la classe map è paragonabile ad un hash o è meglio perchè se
ne può definire la struttura? (mi sa che mi son risposto da solo).
Grazie,
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X 
+--------+              & vCards / \

la classe map puo utilizzare le tabelle hash per memorizzare e 
restituire i valori (basta usare hash_map)
NOTA in realta hash_map non fa parte delle STL ma viene proposto in
tutte le implementazioni della libreria (SGI, Microsoft, STLPort)


 Nicola
Grazie per la risposta.
Rianalizzando il mio problema, ho scoperto che la chiave stringa non
e' univoca. Quindi non posso usare le map.
Credo che le multimap facciano al caso mio.. hai per caso un esempio
di utilizzo anche per queste ?
Grazie ancora


::_Kfn,ltstr,std::allocator<int> >::iterator,bool>' : identifier was
truncated to '255' characters in the debug information


 C4786:
 
http://groups.google.com/groups?q=C4786+group:it.comp.lang.c%2B%2B
Max

Newsgroup: it.comp.lang.c++
Titolo: Cosa sono gli ITERATORI?

Cosa sono in parole povere gli iteratori che vengono sempre nominati
riguardo a STL?

riguardo a STL?
In generale un iteratore é una design pattern che puoi
vedere come astrazione di un puntatore: un oggetto al
quale puoi applicare "alcune" delle tipiche operazioni
che si applicano ai puntatori.  Quale esatto insieme di
operazioni si applichi ti definisce la "categoria" di
iteratore.  Ad esempio, un iteratore "bidirezionale"
puó essere dereferenziato (operator*, e se del caso
[se indica una struct o class] anche operator->), e
puó essere incrementato (operator++, pre e postfisso)
e decrementato (operator--, idem), ma NON puó
invece essere soggetto ad arbitrarie operazioni
(come +=n).  Questo ti permette di usare "quasi come
un puntatore" degli oggetti che "navigano" all'interno
di strutture dati dove non hanno necessariamente senso
tutte le operazioni di "navigazione" che un puntatore
rende possibili all'interno di un array.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Debug componenti ATL

Salve a tutti, sto iniziando a sviluppare componenti con ATL
che sfrutto poi in ambiente Visual Basic. Vorrei poter effettuare
il debug dei miei componenti cosi' come lo effettuo con i componenti
di VB, ovvero: imposto un punto di interruzione, lancio la dll (che
viene registrata e posta in attesa), quando un processo aggancia la 
dll il punto di interruzione scatta e passo in modalita' debug
direttamente sul codice sorgente in VB. Dal punto di vista C++
ho visto che inserendo l'istruzione DebugBreak() nel compilato
viene lanciata una eccezione che mi permette di entrare in 
modalita' debug con il debugger di C++, ma purtroppo vedo solo
il disassemblato... come faccio a fare il debug sul sorgente?
Grazie a tutti
Andrea

 il disassemblato... come faccio a fare il debug sul sorgente?
Premessa: vado a memoria perchè sono un paio di anni che non debuggo
componenti.
Se il componente è compilato in modalità Debug e nel tuo progetto VB è
referenziato il giusto componente ATL non dovresti avere problemi. Quando
sei nel disassemblato devi fare un paio di F8 e poi un click con il tasto DX
sempre sul disassemblato e selezionare "Goto -> Source Code".

Newsgroup: it.comp.lang.c++
Titolo: Sorgenti Esempio

Dove si possono trovare sorgenti d'esempio per
Builder C++ 3.0 ?
Grazie
Roberto

http://bcbcaq.freeservers.com/
http://www.bcbdev.com/
http://rosin-datentechnik.de/rosin-online/sw/cbuilder/
http://www.cbdn.cjb.net/
http://www.drbob42.com/cbuilder/index.htm
piú che altro si tratta di faq, componenti e esempi avanzati, per le prime
cose ti conviene sempre acquistare un manualetto... il c++Builder ne vale la
spesa !!
Esp <E...@Sinapsy.Com> wrote in message 8enlr7$ies$1...@news.IT.net...

Newsgroup: it.comp.lang.c++
Titolo: puntatori

come si crea un puntatore a una funzione?

 come si crea un puntatore a una funzione?
Esempio:
#include <iostream>
using namespace std;
int pippo( double n )
{
    cout << n << endl;
    return 1234;
}
int main()
{
    int ( *pf )( double ) = pippo;
    cout << pf( 1.234 ) << endl;
}
EMG

come si crea un puntatore a una funzione?
Es.
void Foo();
typedef void (*func)();
func a = Foo;
a()   // chiamata di funzione
(*a)()   // sintassi consigliata da Stroustrup
int Foo2(double, int, char);
typedef int (*func2)(double, int, char);
func2 b = Foo2;
b(1.5, 10, 'a');
// oppure
(*b)(1.5, 10, 'a');
class T {
  public:
      void Member();
      int Member2(double, int, char);
  /* ... */
};
typedef void (T::* MemberFunc)();
MemberFunc c = &T::Member;
typedef int (T::* MemberFunc2)(double, int, char);
MemberFunc2 d = &T::Member2;
T Obj;
Obj.*c()
Obj.*d(1.5, 10, 'a');
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

MemberFunc2 d = &T::Member2;
Vorrei vedere se ho capito: stai dichiarando due puntatori a funzione membri
della classe T e li inizializzi con gli indirizzi dei due metodi Member e
Member2. Giusto?
Se si, per fare una cosa del genere i puntatori a funzione (che appartengono
a T) non dovrebbero essere dichiarati anche nella dichiarazione (che brutto
gioco di parole) della classe?
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

gioco di parole) della classe?
No... sono i metodi che appartendono a T, non i puntatori a tali metodi.
I puntatori sono solo un mezzo per accedere ai metodi di T (quelli 
pubblici e solo quelli pubblici).


pubblici e solo quelli pubblici).
Capito tutto, grazie :-)

Newsgroup: it.comp.lang.c++
Titolo: curiosita' con gli iteratori

Salve a tutti!
 ho un una classe in cui e' dichiarato un membro:
    std::vector<OpenGLMaterial *> theMaterials;
dove OpenGLMaterial e' una classe che espone (tra le altre cose) anche un
metodo getName() che restituisce uno std::string &. Io ora voglio ricercare
all'interno della lista dei materiali uno specifico materiale conoscendo il
suo nome e mi sono scritto il seguente metodo:
OpenGLMaterial *OpenGLResources::getMaterial(const std::string materialName)
const
{
  int nMaterials = theMaterials.size();
  bool found = false;
  std::vector<OpenGLMaterial *>::iterator it;
  for (it = theMaterials.begin(); it != theMaterials.end(); ++it)  // Qui mi
segnala l'errore
  {
    if ( found = ( (*it)->getName() == materialName) )
    {
      found = true;
      break;
    }
  }
  if (found)
    return (*it);
  return NULL;
}
Senonche' il VC++ 5.0 mi segnala un:
openglresources.cpp(190) : error C2440: '=' : cannot convert from 'class
OpenGLMaterial *const * ' to 'class OpenGLMaterial ** '
Conversion loses qualifiers
La cosa bella e' che quando invece it lo dichiaro come
std::vector<OpenGLMaterial *>::const_iterator it;
tutto va bene: eppure dalla documentazioni in linea ho visto che di begin()
esistono due versioni overloaded, una che restituisce un vector<T>::iterator
ed un'altra che restituisce un vector<T>::const_iterator. Possibile che il
compilatore insista nel voler usare la versione const?? Non c'e' un modo per
forzarlo? Negli esempi del libro di Bruce Eckel usa proprio la prima
sintassi (anche se non ho provato l'esempio sul mio VC 5.0): con il VC 6.0
il compilatore ha lo steso comportamento??
Ok, scusate per la lunghezza del post e grazie per ogni suggerimento.
    glMario++.


Sent via Deja.com 
http://www.deja.com/
Before you buy.

       found = true;
Perche' un doppio assegnamento a found?
Piu' semplice:
  OpenGLMaterial*
  OpenGLResources::getMaterial(const std::string materialName) const
  {
    for (std::vector<OpenGLMaterial*>::const_iterator it = theMaterials.begin();
         it != theMaterials.end();
         ++it)
      if ((*it)->getName() == materialName)
        return *it;
 
    return 0;
  }
	Mauro

Grazie a tutti per le risposte: effettivamente sono stato uno sciocco: non
avevo fatto caso che il metodo era dichiarato (da me!!!!) const e dunque
potevo solo usare oggetti const. Mea culpa!!
Per quanto riguarda la doppia assegnazione e' effettivamente una
stupidaggine quella che ho fatto: stavo cosi' scervellandomi perche' dovessi
avere un iteratore const che tra i vari taglia e incolla sono rimasti i
pezzi di codice di 3 (tre!) versioni differenti dello stesso metodo!!
Vabbe', la prossima volta mi fustigo a sangue.
Ciao.
    glMario++