mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Leggere dalla seriale

Ciao a tutti.
Mi sono da poco avvicinato al Visual C++ e sono alle prese con un programma
che legga i dati dalla porta seriale.
il mio problema č:
In che modo posso dire al programma da quale porta seriale leggere?
quale funzione devo usare per leggere e interpretare i dati provenienti
dalla seriale?
grazie comunque

dalla seriale?
In Win95/NT si usano le funzioni per i files, CreateFile, ReadFile,
WriteFile.
Gianpaolo Bottin
- Live Long and Prosper -

Prova una cosa del genere:
	DCB dcb;
	HANDLE hCom;
	DWORD dwError;
	BOOL fSuccess;
	hCom = CreateFile(COM1,
			GENERIC_READ,
			0,    /* comm devices must be opened w/exclusive-access */
			NULL, /* no security attrs */
			OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
			0,    /* not overlapped I/O */
			NULL  /* hTemplate must be NULL for comm devices */
			);
	if (hCom == INVALID_HANDLE_VALUE) 
	{
		dwError = GetLastError();
		MessageBox("Errore");
	}
	 // Get the current configuration.
	fSuccess = GetCommState(hCom, &dcb);
	if (!fSuccess) {MessageBox("Errore");}
	// Setta la porta
	dcb.BaudRate = 9600;	// velocita'
	dcb.ByteSize = 7;	// dati
	dcb.Parity = NOPARITY;// parita' 
	dcb.StopBits = ONESTOPBIT; // stop
	fSuccess = SetCommState(hCom, &dcb);
	if (!fSuccess) {MessageBox("Errore");}
 
	// Detertminazione del timeout corrente con la GetCommTimeouts
	COMMTIMEOUTS lpCTO; //struttura in cui le info sul TO vengono ritornate
	fSuccess=GetCommTimeouts(hCom,&lpCTO);
	if (!fSuccess){MessageBox("GetCommTimeouts fallita");}
 
	// Settaggio timeout
	lpCTO.ReadIntervalTimeout=1000;	// 1 sec
	lpCTO.ReadTotalTimeoutMultiplier=0;
	lpCTO.ReadTotalTimeoutConstant=0;
	lpCTO.WriteTotalTimeoutMultiplier=0;
	lpCTO.WriteTotalTimeoutConstant=0;
	fSuccess=SetCommTimeouts(hCom,&lpCTO);
	if (!fSuccess){MessageBox("SetCommTimeouts fallita");}
 
	//Lettura
	char inBuffer[13];
	DWORD nBytesToRead;
	DWORD nBytesRead;
	nBytesToRead=13;	
	fSuccess=ReadFile(hCom,&inBuffer,nBytesToRead,&nBytesRead,NULL);
	CloseHandle(hCom);
Credo che sia pieno di imprecisioni, ma dovrebbe funzionare.
Ciao.
Carlo

Ho provato il tuo suggerimento ma il compilatore si incazza un pò
se ne esce con la frase che COM1 è un undeclared identifier.
da come la vedo io COM1 dovrebbe essere riconosciuto come il nome della
porta seriale della macchina.
Aiutami
grazie comunque
CM ha scritto nel messaggio <01bd1eaf$3003afe0$0100007f@iris>...

Newsgroup: it.comp.lang.c++
Titolo: class e dll

Ho fatto una dll contenente una classe (un simulatore di microprocessore) e
qualche funzione di inizializzazione.
Ho provato ad utilizzarla da VB e sembra funzionare, ma, non sono riuscito
ad accedere alle variabili pubbliche della classe.
Riesco solo a chiamare funzioni che ritornano valori mentre io voglio
passare un puntatore ad un tipo utente dichiarato in VB che abbia le
sembianze della classe stessa e la funzione chiamata in dll deve utilizzare
questo puntatore per creare l'istanza. In questo modo ritroverei i valori
pubblici della classe direttamente all'interno del "tipo utente" in VB.
Spero di essere stato chiaro.
IN C++:
class a {
public:
    int x;
    int y;
    int z;
    a(){
        x=1;
        y=2;
        z=3;
    };
};
void __stdcall init(a* alfa){
    a oggetto;    /creo l'istanza
    alfa=&oggetto; /ora il puntatore punta all'oggetto
}
-----------------------------------------------------------
IN VB:
public type a
    x as long
    y as long
    z as long
end type
public alfa as a
public declare sub init lib "nomedll" (var as a)
call init(alfa)
ora alfa.x, alfa.y alfa.z devono contenere i valori pubblici della classe.
Chi sa dirmi dove sbaglio???

 }
Non so niente né di DLL né di VB (entrambi argomenti che peraltro sono OT
in questo NG), ma il frammento di codice sopra mi pare privo di senso. Sia
oggetto che alfa hanno scope limitato alla funzione init(), e nulla di ciò
che accade lì dentro sembrerebbe avere effetti collaterali esterni.
Una versione che potrebbe essere conforme a quelle che erano
presumibilmente le intenzioni del programmatore potrebbe essere:
 void __stdcall init( a*& alfa){  // nota il '&' dopo il '*'
     a* oggetto = new a;    //creo l'istanza
     alfa=oggetto; //ora il puntatore punta all'oggetto
 }
Oppure:
 void __stdcall init( a*& alfa){  // nota il '&' dopo il '*'
     static a oggetto;    //creo l'istanza   // nota 'static'
     alfa=&oggetto; //ora il puntatore punta all'oggetto
 }
Max

Newsgroup: it.comp.lang.c++
Titolo: aiuto!!!!!!!!

Ciao,sono uno studente di ingegnieria e cercavo qualcuno esperto x poer fare
un programma in c++

 un programma in c++
-- 
Ciao, gengisdave
http://digilander.iol.it/gengisdave



 VERGOGNA!!!!!! Ingegneria si scrive se la "i" !!!!!!!!
??????? ( da uno che ingegneria purtroppo a volte la scrive con la i ) :)))
Newsgroup: it.comp.lang.c++
Titolo: Parametri di template

Qualcuno saprebbe dirmi perche' il seguente codice compila perfettamente:
    template < int t_int > class TBase {...};
    class CDerived: public TBase <10> {...};
mentre questo:
    template < const char* t_char > class TBase {...};
    class CDerived: public TBase < "Una stringa" > {...};
genera questi errori (VC6):
error C2964: invalid expression as template parameter
    (su CDerived)
error C2973: 'TBase' : invalid template argument 't_char'

 error C2973: 'TBase' : invalid template argument 't_char'
Un argomento di template deve essere una costante oppure l'indirizzo
di qualcosa con external linkage.  In particolare una `string literal'
non va bene.
Puoi provare con
  const char unaStringa [] = "Una sringa";
  const char * const pStringa = unaString;
  class Derived : public Base<pStringa> {....
egcs lo prende.
	Mauro

ciao e grazie per la risposta,
    comunque il VC++6 non accetta neanche le varianti che mi hai proposto.
Nel primo caso mi da' "invalid address of static variable 't_char' ", nel
secondo "constant expression expected".
    A questo punto mi sorge un dubbio: io credevo che i template fossero
solo un mezzo piu' potente per scrivere delle macro, ma a quanto pare non e'
cosi'. Qual'e', a norma di standard, la differenza concettuale? Devo
rinunciare del tutto ad usare una stringa come parametro? (a meno di con
creare una maxi-macro)
grazie,
    Al


Newsgroup: it.comp.lang.c++
Titolo: vector o liste di template

Ciao a tutti
Devo usare una lista di oggetti, che a loro volta sono template
Qual è la sintassi corretta?
ho provato con list<oggetto<int>*> lista; ma ovviamente non funziona
grazie


posto che i nomi list e oggetto siano visibili nello scope corrente
questa sintassi e' corretta. Il tuo problema e' altrove.
Ciao,
Nicola

Nicola Musatti ha scritto:

si infatti ho poi cancellato il messaggio
era una distrazione, tutto risolto
grazie comunque

Newsgroup: it.comp.lang.c++
Titolo: Librerie standard

Sono nuovo della programmazione in C, ho dei problemi con l'utilizzo
di vecchi programmi in C standard che utilizzano librerie ad es.
<stdio.h> ecc.
Io ho VC++ 6 e che non riesce  a trovarle. Ho provato in vari modi
ma non riesco ad uscirne.
Grazie per l'aiuto.
BYE,    Gigi

 ma non riesco ad uscirne.
ciao,
questo programma compila, linka ed esegue sotto visual c++ 5.0
#include <stdio.h>
int main ()					
{
 	FILE * f = fopen("pippo.txt", "w");
	fprintf(f, "prova\n");
	fclose (f);
 
	return 0;
}
La libreria da linkare e' libc.lib. Puoi provare a vederlo cosi': 
in project->settings->link->input selezioni "ignore default libraries"
aggiungi libc.lib (che si trova nella directory lib del visual c++) al
progetto
Newsgroup: it.comp.lang.c++
Titolo: Puntatori a metodi

Visto che ultimamente si parlava di puntatori a funzione, mi chiedevo
se e' possibile gestire anche puntatori a funzioni membri di classe.
Ho provato in diverse varianti, ma arrivo sempre allo stesso punto:
errore in fase di compilazione. Per la precisione, sulla riga in cui
si trova l'identificatore puntatore a funzione (che dovrebbe
richiamare la funzione specifica), mi dice che NON e' una funzione.
Questo e' il codice che ho provato:
class miaclasse
{
typedef bool (miaclasse::*funzione)(int, int); 
public:
	miaclasse::miaclasse();
	miaclasse::~miaclasse();
	void riempi_tabella(void);
	bool Funz1(int a, int b);
	bool Funz2(int a, int b);
	bool lancia(int a, int b);
};
bool miaclasse::Funz1(int a, int b) { /* Fa qualcosa */ }
bool miaclasse::Funz2(int a, int b)  { /* Fa qualcosa */ }
bool miaclasse::lancia(int a, int b)
{
	miaclasse::funzione *comando;
	comando=(funzione*)malloc(sizeof(funzione)*256);
	miaclasse::comando[0]=&miaclasse::Funzi1;
	miaclasse::comando[1]=&miaclasse::Funz2;
  	comando[1](10,8);           //Errore: "Call of nonfuncion",
che significa che non la riconosce come funzione.
}
Eppure con funzioni "normali" veniva cosi' bene... Dove sbaglio?

 richiamare la funzione specifica), mi dice che NON e' una funzione.
Devi sempre associare l'istanza della classe al puntatore a metodo,
durante la chiamata.
Questo rappresenta una differenza rispetto ai comuni linguaggi visuali
(
p.es
. CBuilder) in cui il tipo TNotifyEvent (che č simile al puntatore
ad un metodo di una classe) ha proprio come differenza la capacitą di
contenere anche il riferimento ad una precisa istanza.
Se volessi implementare la stessa struttura in C++, essa dovrebbe essere
ad esempio una struct contenente sia il riferimento all'istanza che il
suo particolare metodo.
Un esempio č:
#include <stdio.h>
class MiaClasse {
  public:
    void foo() { printf("Ciao!\n"); };
};
typedef void (MiaClasse:: *TMetodo)();
void main() {
  MiaClasse A;
  TMetodo Metodo;
  Metodo = &A.foo;
  (A.*Metodo)();
};
Ciao,
Marcello.

 }
I puntatori a membri possono essere adoperati solo tramite gli operatori
.* o ->* in combinazione con un riferimento esplicito a un'instanza della
classe.
Nel tuo caso:
 
    ( this->*( comando[1] ) )(10,8); 
Max
 
 

         comando[1](10,8);           //Errore: "Call of nonfuncion",
Questo è il problema principale: devi scrivere
( this ->* comando[1] )( 10, 8 );
EMG

Si, adesso funziona.
Grassie a tutti.

> 
Scusa, non vorrei passare per spacca ca***, ma effettivamente, il
compilatore mi accetta questo:
comando[1]=&miaclasse::Funz2;
ma non mi accetta questo:
comando[1]=&Funz2;
Perche' posso eliminare il risolutore a sinistra e non quello a destra
?

 ?
Credo sia un problema del compilatore. Sia BC++ 5.5 che DJGPP compilano
regolarmente togliendo entrambi i risolutori.
EMG

EMG
In questo caso ho provato con Builder 4.
Comunque pensandoci bene mi sembra anche giusto che si possano togliere tutti e
due, dal momento che non mi lascia fare il giochino:
comando[x]=&UnAltraClasse::Funzione;
Newsgroup: it.comp.lang.c++
Titolo: READ COM VC++6

Devo leggere dei dati su una porta Com usando un ReadFile Bloccante.
Pero' devo capire se c'e' qualcosa da leggere prima di bloccarmi.
Allora pensavo di usare la WaitForMultipleObjects.
Ma non mi ritorna mai quando ci sono dei dati.
Cosa sbaglio?
uso
_handleCom=CreateFile ("COM1",GENERIC_READ | GENERIC_WRITE,NULL
,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
 OVERLAPPED overlappedRead;
 HANDLE readEvent;
 overlappedRead.Offset = 0;
 readEvent = CreateEvent(0, TRUE, FALSE, 0);
 overlappedRead.hEvent = readEvent;
 char readBuffer;
 DWORD numRead;
 int success = ReadFile(_handleCom, &readBuffer, 1,&numRead,
&overlappedRead);
 handle[0]=readEvent;
e poi aspetto su:
  retn=WaitForMultipleObjects(2,handle,FALSE,INFINITE);
dove handle[1] ho un timer.
Come faccio a usare la  WaitForMultipleObjects su una COM?
Grazie

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: Codeblocks - compilare su macchine a  64 bit

Un codice c/c++ compilato su Windows 8 a 64 Bit genera un eseguibile 
utilizzabile solo su una macchina a 64 Bit?
 
Grazie
 
nero23

 
 
Dipende cosa dici al compilatore. Direi che di default sì, ma guarda i
settaggi!
 
Ciao!

 utilizzabile solo su una macchina a 64 Bit?
 
Questo lo decide il compilatore, che fa quello che gli dici tu.
Se tu non gli dici niente, allora fa quello che gli dicono i suoi 
settaggi di default. I compilatori win che ho visto finora sono 
impostati per generare codice a 32 bit, suppongo per compatibilitï¿œ 
dell'exe con i vecchi SO.
 
Occhio che deve essere tutto allineato: se fai un exe a 64 bit puoi 
usare solo DLL a 64 bit e viceversa. Se usi una DLL di terzi che ï¿œ solo 
a 32 bit, ti tocca compilare il tuo exe a 32 bit e non ci sono santi :-)
 

 utilizzabile solo su una macchina a 64 Bit?
 
 
Di solito i compilatori hanno un'opzione per specificare che output vuoi. Con gcc c'e` l'opzione -m32 o -m64.
 
Su macchine a 64 bit puoi normalmente eseguire codice a 32 bit. Sotto Windows, il processo viene caricato nel sottosistema WOW64 (Windows on Windows). 
 
Non e` pero` possibile caricare DLL a 32 bit da un processo a 64 bit. C'e` un workaround abbastanza macchinoso: o scrivi un processo a 32 bit che carica la DLL e ne espone l'API, comunicando col processo a 64 bit tramite una qualche forma di IPC, oppure scrivi una DLL a 64 bit che esporta esattamente la stessa interfaccia della DLL a 32 bit (in modo che per il processo a 64 bit sia del tutto trasparente) e che internamente usa IPC per comunicare col processo a 32 bit che ha caricato la DLL a 32 bit.
Newsgroup: it.comp.lang.c++
Titolo: come cominciare?

Sono un neofita della progerammazione , fino ad ora ho studiato solo il
Fortran in un corso universitario...
Sono molto interessato al C++ , ho acquistato un libro ( Chi ha paura del
C++? , di Steve Heller) ma mi e' sembrato molto riduttivo e non offre quella
visione completa e di insieme che servirebbe ...
Leggendo questo newsgroup ho notato che molti consigliano lo Stroustrup,
"C++ Programming Language" 3a edizione e
il "C++ Primer"di Lippman e Lajoie (3a edizione) ...
Mi interesserebbe anche il Visual c++ 5.0 e ho visto un libro di Pappas
della Mcgraw-hill ....
Quello che vi chiedo e' :
cosa dovrei acquistare?
mi scuso se la domanda puo' sembrare un po' banale ai piu' , ma non me ne
vogliate , del resto chi e' al principio di qualcosa deve fare queste
domande ;)
Vi ringrazio anticipatamente ,
Gianlucky....

cosa dovrei acquistare?
Lippman e Lajoie per cominciare (o per riprendere dopo
l'introduzione un po' parziale di Heller).  Stroustrup per
continuare/"completare" (vabbe`, cose piu` avanzate le
trovi in altri testi ancora, ma per un annetto questi due ti
possono bastare;-).  Questo, per il C++.  Per il Visual (e
immagino specificamente le MFC e/o l'ATL) servira`,
certo, qualcos'altro.
Alex

solo io:-)
E non capiscp il perche' :)
Io lo trovato un po' arido. Passa in rassegna i costrutti senza mai
fermarsi a buttare giu un esempio di qualche consistenza. Ho preferito
l'Eckel alla fine (ce l'aveva un mio amico e melo sono fatto
prestare:)

prestare:)
Non conosco "Thinking in C++", e non sapevo neanche che ce
ne fosse una versione aggiornata alle ultime novita`, comunque
Bruce Eckel e` un ottimo autore ("Thinking in Java", in particolar
modo, e` un testo splendido).  A quel che ho sentito, pero`, il
suo testo di C++, come quello di Java, richiede come base di
partenza il C o simile; Lippman non ha requisiti del genere -- va
benissimo anche a chi provenga da Pascal, Basic, o che altro.
Alex

ne fosse una versione aggiornata alle ultime novita`, comunque
Ho controllato, e, in effetti, non c'e`: il libro ha 3 anni
e li dimostra tutti.  Spero che Eckel produca presto una
nuova edizione, ma sconsiglio caldamente dall'usare la sua
vecchia edizione per imparare il C++ -- il linguaggio e`
troppo cambiato negli ultimi 3 anni.  Stroustrup, per chi
ama "esempi consistenti", e Lippman e Lajoie, per chi li
preferisce semplici/snelli/facili da seguire, restano le
mie due raccomandazioni primarie per imparare oggi il C++
(comprese le sue, importantissime, librerie standard).
Alex
--
 ____    Alex Martelli, Bologna, Italia -- email: 
al...@magenta.com
 \SM/___                                 
http://magenta.com/~alex
  \/\bi/     You never know what is enough unless you know what
     \/          is more than enough.

Newsgroup: it.comp.lang.c++
Titolo: Comandi di I/O per NT????

Purtroppo e' necessario scrivere un device driver.
Auguri.
Renftle & Grande wrote:
"la prossima volta scriviamo qualcosa ??? :-)"


Newsgroup: it.comp.lang.c++
Titolo: informazioni sull'assembler

Ciao
Sono un programmatore in visual basic.
Vorrei sapere qualcosa in assembler
ma non so proprio dove incominciare.
Potresti segnalarmi siti o documentazione
da scaricare in rete (magari in italiano) o
manuali da acquistare .
Tieni presente che non so proprio niente.

 ha scritto nel messaggio
news:P1T58.7717$om6.1...@news1.tin.it...

Ah, credevo C++ :-)
it.comp.programmare
Ciao
--
Timothy Redaelli

Newsgroup: it.comp.lang.c++
Titolo: [OT] Floppy e serial number

ho constatato una cosa. alcuni floppy, quando si cerca di leggere il serial
number (facendo dir a:), espongono solo il volume name. cosa significa? che
c'è qualche tipo di floppy che non "supporta" il serial number?
grazie.
MarioH


wrote:

  Dovrebbe trattarsi di floppy formattati con versioni del DOS
inferiori alla 5 (non sono certo della versione, visto che sono
passati un po' di anni), che non avevano il serial number ma solo
l'etichetta di volume.
  Ciao :-)
  Massimo
  Nell'indirizzo, inserire una "h" tra la "t" e la "u"
  In the address, insert an "h" between the "t" and the "u"

Newsgroup: it.comp.lang.c++
Titolo: Versione dell'applicazione da me sviluppata

Salve, sono un programmatore di Borland Visual C++ Builder. Utilizzo la
versione 3.0 e non ho ancora capito come visualizzare (o meglio come farmi
restituire) il numero di versione dell'applicazione impostato nelle Options
sotto la voce "Version Info" dell'ambiente di programmazione (Major
Version - Minor Version - Release - Build).
Nel caso fosse troppo incasinato, mi basterebbe solo il Build!!
Spero di essere stato abbastanza chiaro e grazie anticipatamente per
l'attenzione.
----
(ing Alessandro Favretto)

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

 wrote in message
3CD68821...@divalsim.it...


Newsgroup: it.comp.lang.c++
Titolo: Inizializzare vettore

Esiste un modo per inizializzare un vettore "alla C" con valori arbitrari, 
qualcosa come
vector<int> myVector = {23, 187, 234, 211, 34};
?
Thx,
Pleg 


Non ancora. Esisterà. Con il prossimo standard la riga di codice che hai
scritto sarà legale. (Cerca: "C++0x initializer lists".)
Per ora, puoi usare il seguente trucco:
 int values[] = { 23, 187, 234, 211, 34 };
 vector<int> myVector( values, values + sizeof(values)/sizeof(*values) ); 
Max
 

 vector<int> myVector( values, values + sizeof(values)/sizeof(*values) );
Perfetto, grazie!
Pleg 

Salve,
Vede anche 'Boost assignment library':
http://www.boost.org/doc/libs/1_38_0/libs/assign/doc/index.html
Newsgroup: it.comp.lang.c++
Titolo: Cerco programmatore per realizzare piccoli lavori nel linguaggio delphi.

Cerco programmatore per realizzare piccoli lavori nel linguaggio delphi.
Compenso da concordare.
Gianni
giann...@libero.it

 Compenso da concordare.
hai sbagliato NG credo
Tommy

Newsgroup: it.comp.lang.c++
Titolo: passaggio dei oparametri c++

ciao, ho un problema che mi angustia su un passaggio di dati in c++. Il main 
chiama una funzione che inizializza un vettore secondo la sintassi seguente:
    cin >> N;
    A = new int[N];
    init_array(A,N);
la funzione init_array è la seguente:
void init_array(int a[], int count)
{
  int i;
  /* Imposta a 0 ogni elemento del vettore */
  for(i = 0; i < count; i++)
    a[i] = 0;
}
con il mio devc++ (Versione 4.9.9.2)tutto funziona bene ma se lo si 
ricompila su un'altra macchina compare un errore di compilazione che viene 
riportato al passaggio dei parametri. purtroppo non ho disponibili i 
messaggi di errore che compaiono, qualcuno ha qualche suggerimento? Io sono 
portato a pensare che si tratti di una questione di compatibilità di 
versioni del compilatore. grazie a chi mi risponderà. 

GG ha scritto:

prova con:
void init_array(int* a, int count)

Newsgroup: it.comp.lang.c++
Titolo: Problema con <string>

Credo di aver lincato correttamente tutte le include path.
Però scrivendo:
#include <string>
int
main (int argc, char *argv[])
{
string mystring;
  return 0;
}
ottengo:
'string' undeclared (first use this function)
(l'include è stato quindi trovato)
Tutto ciò è normale?

"Flix" <wr...@newsgroup.comeon> wrote in message
news:b25u36$17j$1...@lacerta.tiscalinet.it...

E' normale...
per la milionesima volta della settimana occorre dire di studiare la teoria
dei namespace:
anche se includi <string> o <iostream> o altri header standard, occorre
mettere std::string, std::cout, std::cin ecc..per tutte le variabili,
costanti, funzioni, metodi, classi ecc.. che appartengono a un namespace, in
questo caso il namespace std.
Forse questa cosa sta nelle FAQ del ng.
Maurus
ogni volta

Chiedo scuda. Avrò probabilmente omesso il namespace std;
"Flix" <wr...@newsgroup.comeon> ha scritto nel messaggio
news:b25u36$17j$1...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c++
Titolo: come stampare una funzione?

come stampare la funzione exp(x), o qualcosa del genere, in un certo
intervallo?
grazie a tutti

 intervallo?
Che intendi per "stampare"? Produrre una tabella di valori? Produrre un
diagramma?
EMG

giusta osservazione...scusate, intendevo
stampare (o plottare?) il grafico sul monitor.
ciao ciao

 stampare (o plottare?) il grafico sul monitor.
Non c'è un modo standard. Devi per forza spulciare la documentazione del
tuo compilatore alla ricerca di eventuali funzioni non standard che ti
permettano di farlo.
EMG

ci provero' e poi faro' sapere se ne ho cavato fuori qualcosa speriamo
bene.... :-)
ciao ciao  e grazie

permettano di farlo.
O cercare tra le API del sistema operativo!!!!
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ 4.51

Sto cercando questo programma con interfaccia Windows. Mi serve questo
perchè al centro di calcolo della mia università utilizziamo questa versione
per l'esame di Fondamenti di Informatica. Qualcuno mi aiuta diceendomi dove
posso trovarlo, magari una versione demo.
Grazie!

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,
Andrea Laforgia

Quindi di solito è il tuo docente a fornirtelo :-)
Prova a guardare sul suo sito :-)
--- bye

Newsgroup: it.comp.lang.c++
Titolo: [semi-ot] RSA

Esiste la possibilità di risalire alla chiave pubblica di riferimento  
partendo da una chiave privata o tale proprietà non è "propria"  
dall'algoritmo RSA?

Infatti l'avevo specificato nell'oggetto...
Sai indicarmi dove potrei chiedere?

 Sai indicarmi dove potrei chiedere?
 it.comp.sicurezza.crittografia
Newsgroup: it.comp.lang.c++
Titolo: Framework di unit testing

C'e' qualcuno che usa strumenti, librerie o framework per il collaudo di 
modulo (unit testing) dei propri programmi in C++?
Quale consigliate?
Ho già letto l'articolo: 
http://www.gamesfromwithin.com/articles/0412/000061.html
Ce ne sono altri analoghi?
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila


wrote:

Qualche tempo fa ero anche io alla ricerca di una libreria di unit
testing. L'articolo che citi mi è sembrato il più interessante, anche
se fra i link ho salvato anche questi due:
http://www.codeproject.com/library/Using_CPPUnit.asp
http://dodji.freespiders.org/blog/index.php?2007/03/16/30-boost-test-vs-cppunit
Alla fine mi sono fidato dell'articolo che hai letto anche tu e mi
sono "buttato" CxxTest, di cui però non so dirti molto avendolo alla
fine provato ben poco (l'impressione è comunque positiva data
l'effettiva semplicità nel creare un test).
Newsgroup: it.comp.lang.c++
Titolo: problem with STL string - please help!

I'm attempting to do something very simple with the Standard Template
Library string. The code is the following:
#include <string>
using std::string;
void main()
{
     string str;
     str = "hello";
     cout << str << endl;
}
For some reason I get the following compiler error:
error C2679: binary '<<' : no operator defined which takes a right-hand
operand of type 'class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char> >' (or there
is no acceptable conversion)
I'm using MS Visual C++ 6.
I've not used the STL string type before, but this seems so obvious, please
help!
Thanks
Steven

 }
Best regards,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: [?] Ci sto uscendo di...

Ciao!
Ho il seguente problema con questo pezzo di codice:
[...]
#define _IGPM_SPEC_TEMPLATES template <>
#include <math.h>
#include <float.h>
#include <limits.h>
template <class T>
T abs(const T d) { return (d>=0)?d:-d; }
_IGPM_SPEC_TEMPLATES
inline bool   abs(const bool   b) { return b; }
inline double abs(const double d) { return ::fabs(d); }
#if defined(_IGPM_COMP_GNU) && (!defined(_IGPM_COMP_GNU_EGCS))
_IGPM_SPEC_TEMPLATES
inline float abs(const float f) { return ::fabs( double(f) ); }
#else
inline float abs(const float f) { return ::fabsf(f); }
#endif
[...]
Quando compilo mi dice che la definizione di abs è
in "conflitto" con quella presente in cmath.
Questi sorgenti sono garantiti funzionare per la
versione 2.95.3, io uso la 3.2.3, potrebbe essere
questo il problema?!
Grazie.

0.0 Brain wrote:

perche'non provi semplicemente a cambiare il nome della funzione definita da
te?

 questo il problema?!
E' molto probabile.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: [?] - Classi e Database

Salve a tutti
Sto da poco studiando il C++ ed andando avanti stavo notando che:
1) In riferimento alle classi, mi sembra di aver capito che vengono create
ed esistono solo localmente. In Visual Basic è possibile renderle visibili
anche da altre applicazioni;
2) Nei libri che ho, non trovo alcuna menzione all'uso di database con il
C++;
Ciao
Fabio

 C++;
Neanche io, ma penso che sia sconsigliato per problemi del genere!(NON SONO
ASSOLUTAMENTE SICURO DI CIò)
Ciao!!!

C++;
Perche`, presumibilmente, nei libri che hai letto si tratta delle
caratteristiche standard del linguaggio.  Ci sono molti DB che puoi
usare con le diverse implementazioni di C++.  Per esempio, con C++
Builder puoi usare ADO e BDE/dbExpress, nonche` diversi componenti
scritti intorno alle API dei produttori di DB, per accede,
praticamente, a qualsiasi DB esistente.
In ogni caso, questi problemi sono legati alla piattaforma.
Visita it.comp.os.linux.development o it.comp.programmare.win32, a
seconda dei casi.

 seconda dei casi.
Ciao
Fabio

Non desideravo riferirmi alle versioni visuali (vedi Visual C++, ecc).
Devi riferirti necessariamente a una implementazione C++, se vuoi
parlare di DB.  D'altronde tu lavorerai pure con un compilatore
particolare,...

 particolare,...
io uso felicemente un toolkit commerciale che rende l'accesso ai DB 
trasparente al sistema operativo e al compilatore, il tutto in classi 
template. 

template. 
A quali DB ?

 A quali DB ?
io uso prevalentemente postgres, ma si puo' usare anche con access, 
oracle, mysql 

"Paolo Podda" <p.p...@tiscaliNOSPAM.it> wrote in message
news:2186449.v...@news.iol.it

Non tenerci cosi' sulle spine: come si chiama il toolkit?
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Non tenerci cosi' sulle spine: come si chiama il toolkit?
veramente non volevo fare pubblicita', comunque ne uso due: libodbc++ 
che assomiglia a JDBC, che e' LGPL (
http://orcane.net/freeodbc++/
) , e 
objectivity (
http://www.objectivity.com/DevCentral/Products/
)
ne esistono ovviamente anche altri, ma io uso questi due
Newsgroup: it.comp.lang.c++
Titolo: Come realizzare un controller delegante in C++?

Ciao a tutti,
vorrei realizzare un controller in grado di delegare alcune operazioni
ad un altro sotto-controller intercambiabile, ma non riesco a trovare un
pattern che mi soddisfi.
Scenario:
- ho una GUI MVC gestita da un MainController;
- a seguito di un'azione il MainController seleziona internamente
l'istanza di un suo delegato, scegliendola tra N giï¿œ pronte;
- tutti i controller delegati implementano una medesima interfaccia che
chiamo Controller (classe C++ virtuale pura);
- in presenza di un delegato, alcune operazioni normalmente gestite dal
MainController saranno invece dirottate al delegato.
Il problema ï¿œ che il controller delegato dovrebbe avere la visibilitï¿œ e
la "manovrabilitï¿œ" di tutti gli oggetti (privati) gestiti dal
MainController;
se pure rendessi la classe Controller un friend di MainController, non
otterrei comunque granchï¿œ, perchï¿œ "l'amicizia" non ï¿œ ereditabile.
Come progettereste in C++ questo requisito, anche stravolgendo tutto?
Grazie in anticipo.
-- 
Il Njc

 MainController;
Se degli oggetti membro devono essere gestiti da qualche altra classe,
o non sono privati o vanno passati. In teoria, io manterrei "stato"
interno del controller in una classe a parte, che viene gestita ogni
volta da chi di dovere..
M2C
Ciao!


Per ora ho fatto in modo che i controller delegati abbiano accesso
diretto ai dati del MainController; in effetti lo "stato" dei dati � gi�
separato, ma oltre a quello ci sono anche i riferimenti ai servizi (non
singleton) e ai componenti visuali della GUI.
Il fatto che i delegati non siano autonomi ma asserviti alle richieste
del MainC. mi da la possibilit� di trattarli come estensioni, facendo
riprendere il controllo al MainC. nel caso in cui il delegato di turno
non sappia gestire l'operazione richiesta... in modo simile alla
"consumabilit�" degli eventi in una catena di event handler.
Ciao.
-- 
Il Njc
Newsgroup: it.comp.lang.c++
Titolo: ma string e' un tipo nativo od una classe ?

Salve a tutti
Come avrete forse visto :) da un po ci sono anch'io che posto su questo 
ng , e gia sono partito alla carica con le domande :-))
Allora, nello standard ISO C++ approvato lo scorso anno, la stringa  
(String o string ?) e' un tipo classe implementata nella libreria 
standard del C++ oppure e' un tipo nativo alla pari di int,long ecc.?
e gli operatori? sono overloadati nel modo "giusto" ? oppure non si puo' 
proprio parlare di overloading ? (come vedete, non sono molto informato 
sul nuovo standard :))
-- 
darXstar~>Endor_Moon
     * 
darX...@tin.it
 (changing soon)
     Fido 2:335/241.5 

sul nuovo standard :))
Molti operatori di std::string sono overloaded come ci si potrebbe
aspettare: = per l'assegnazione, + e += per concatenare, [] per
esaminare o modificare un carattere, ==, < ecc per i confronti...
Forse l'unico aspetto che puo` stupire e` che una std::string NON
ha una conversione _automatica_ a const char*; occorre, se
serve, chiamare esplicitamente il metodo c_str() della std::string.
E` una deliberata scelta di progetto, discutibile ma difendibile,
dovuta alla confusione che possono causare le conversioni
automatiche.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Sui Costruttori e distruttori

Ciao a tutti...
ecco l'ennesimo dubbio da niubbi (ma xkč ancora mi vengono questi dubbi
infami?)...
č possibile un'istanza del tipo
myObj* objPtr = new myObj ( arg1, arg2,...);
????
l'idea sarebbe di usare la memoria dinamica cn oggetti definiti da classi,
usando l'argomento del costruttore...
se no, come posso scrivere quell'istanza correttamente?
Infine, avendo definito objPtr se faccio...
delete objPtr;
viene invocato il distruttore definito nella classe?
Un gigantesco grazie!
Prima o poi diventerň anch'io bravo (forse poi)
Daniele

 viene invocato il distruttore definito nella classe?
Certo! Ciao.
-- 
Andrea Bergia - studente          Linux Registred User #281550
Per favore non mandatemi allegati in Word o PowerPoint.
Si veda 
http://www.fsf.org/philosophy/no-word-attachments.html
Newsgroup: it.comp.lang.c++
Titolo: [OT] Turbo C

Scusate l'OT, sono costretto ad utilizzare per fini didattici il compilatore
Borland Turbo C 3 per Windows. Qualcuno sa da dove posso scaricarne una
copia?
E un'altra domanda: si tratta di un compilatore solo C o anche C++?
--
Kojak
vrke...@hotmail.com
http://zip.to/kojak
Life would be much easier if I had the source code.

E un'altra domanda: si tratta di un compilatore solo C o anche C++?
Aspé n'attimo.... io ho borland turbo c++ 3 per windows..... questo si
tratta sia di c che di c++ .... quindi é meglio il c++, sopratutto col
fatto che poi lo puoi adattare ai diversi stili di programmazione

Newsgroup: it.comp.lang.c++
Titolo: Creazione di campi EDIT

Come posso fare che il mio programma in C++Builder mi automaticamnte  in una
form vuota tanti campi Edit secondo la necessitą di chi usa lo stesso?
Grazie
Lanfranco

...
Intendi creazione RunTime di oggetti?
Allora, per fare questo devi tener conto del fatto che l'oggetto vuol sapere
da quale classe genitore esso dipende. E fatto questo crei il componente
come oggetto settandogli un paio di proprietą...
Crea un pulsante e incolla questo codice nel gestore OnClick, poi giocaci
sopra.
TEdit *edit=new TEdit(this);
edit->Parent=this;
// Setti le altre proprietą
edit->Left=100;
// Ecc...
Per deallocare il componente vai con delete.

Newsgroup: it.comp.lang.c++
Titolo: Help Facile e Urgente

Help !!!
Conosco bene VB ma mi trovo ad "implementare" ed esportare una "WIN32 DLL"
da VC++ che non conosco quasi per niente.(...appunto a VB)  Mi sapete dire
come diavolo devo fare ? Creo la DLL ma da VB non riesco a importarla, (da
References...)  nè con REGSVR32 a registrarla...
Davide

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: dove inserire i file *.cfg

Ho il Borland c++ 5.5 ma non so dove devo mettere i file di configurazione.
Se qualcuno puň aiutarmi.

 
nella directory \bin  del compilatore
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Remove ICE from e-Mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroup: it.comp.lang.c++
Titolo: socket in C++ .... differenze con il C

Ciao a tutti,
sto creando 1 programma in C++ che ha bisogno di comunicare via socket
con 1 altro programma.
mi sono scaricato e letto 1 po' di esempi di socket in C.
Volevo chiedervi se in C++ ci sono differenze notevoli nell'uso dei
socket rispetto al C. (librerie diverse, magari + complete. funzioni
differenti. etc)
eventualmente sapreste consigliarmi della documentazione a riguardo?
grazie mille
 Marco

 writes:

la gestione dei sockets e' lasciata all'underlying os; che le
procedure dedicate vengano richiamate da un programma c, c++ o cobol
non fa differenza.  le free software foundation distribuisce (nei
soliti siti gnu) una libreria, chiamata 'common c++', che ha delle
classi gia' pronte per la gestione dei sockets sotto unix.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.
Newsgroup: it.comp.lang.c++
Titolo: [?] Come si crea una Splash window

Vorrei sapere come si può creare una finestra che parte all'avviodel
programma dove inserire tutti i dati relativi alla versione, all'utente e ai
diritti?
Grazie

...

(Con Visual C++) Basta creare un file dove inserisci tutti i tuoi dati e poi
crei un form a tempo che vada a leggere questo file.
(se ti serve qualche altro aiuto scrivi sul group...)
Demiurgo

programma dove inserire tutti i dati relativi alla versione, all'utente e
ai
Se usi le API di Windows, naturalmente, sara`:
RegisterClass, CreateWindow, rispondere ai messaggi nella window
procedure (in particolare, mostrare tutti i dati che vuoi in risposta a
WM_PAINT, e "autodistruggerti" in vari casi, tipo in risposta a un clic
di mouse, o a un tempo-scaduto, o in risposta a un messaggio da
parte della applicazione che abbia finito di inizializzarsi, eccetera).
Se usi invece un qualche "framework" piu` ad alto livello, bisognera`
vedere quale; o il framework ti fornisce le funzionalita` che gia` ti
servono, o ti permette di "scendere" alle API per applicare la semplice
soluzione di cui sopra, eccetera.  Per Visual C++, ad esempio, c'e`
un componente "Splash Windows", che si integra al framework MFC,
fornito fra i componenti add-on tipici dell'ambiente VC++ stesso (mi
pare che possa inserirlo automaticamente l'"Application Wizard") --
il codice che ti fornisce fa esattamente quanto sopra dicevo.
Alex

E se si volessero disattivare? Io le odio. Tu avvi un programma che magari
impiega un po' di tempo per caricarsi e nel frattempo vorresti continuare a
leggere la posta elettronica. E invece nooooo!!! Ti si piazzano sullo
schermo e tu devi per forza aspettare. Dimmi che c'è un modo per
disattivarle.
P.S. Volevo chierderti informazioni su un libro che altre volte ti ho visto
consigliare, il Prosise. Primo: titolo preciso e casa editrice. Secondo: a
me serve un libro per approfondire la programmazione in Visual C++,
principalmente usando MFC, ma anche le API di Windows. Non sono
completamente a digiuno, ho già sviluppato qualcosa, utilizzando molto
l'help in linea e un po' il Kruglinski (non mi ricordo bene come si scrive).
Prima di fare un altro acquisto sbagliato come per il Kruglinski, volevo
accertarmi che il Prosise facesse al caso. A chi è diretto principalmente il
Prosise?
Grazie

Prosise?
A programmatori che stanno iniziando, o hanno una media competenza,
nell'uso di MFC; per chi avesse gia` una competenza medio-alta sul tema,
esistono altri testi piu` avanzati (non in Italiano, pero`, per quanto io
ne so), come il Shepherd e Wingo (no, non so a memoria il titolo esatto,
e` qualcosa come "MFC Internals" -- spesso, ci si riferisce ai testi tecnici
coi nomi dei rispettivi autori, c'e` meno rischio di ambiguita` che con i
titoli, in un campo in cui i titoli spesso sono molto simili fra libri assai
diversi, e magari assai diversi fra le versioni italiane e inglesi...).
Alex
Newsgroup: it.comp.lang.c++
Titolo: Restituzione di un riferimento

 il compilatore e' conforme e se non mi e' sfuggito qualche cosa!
Cioè se definisco fuori della classe l'operator:
tipo& operator++( tipo& a, int );
e lo chiamo su una funzione che restituisce per valore un oggetto di quella
classe non funziona, mentre chiamandolo su una funzione che restituisce un
riferimento funziona,(come in effetti succede con i tipi primitivi)?
--
Marco Iannaccone
marc...@tin.it
ICQ UIN: 18748121     MetalCoder
"I bei film drammatici fanno sentire intelligenti anche gli stupidi, i bei
film comici fanno tornare bambini anche le persone intelligenti.
Peccato che sia più facile trovare stupidi che vogliono sembrare
intelligenti che persone intelligenti col coraggio di saper tornare bambini"
        Stan Laurel

 riferimento funziona,(come in effetti succede con i tipi primitivi)?
SiPlusPlus :-)
Sempre che non mi sia sfuggito qualche cosa.
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 riferimento funziona,(come in effetti succede con i tipi primitivi)?
Esatto, perche' il primo parametro e' un reference a un oggetto non
costante.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: QT di trolltech

Salve,
vorrei sapere:
1) Che vantaggi ha usare il toolkit QT rispetto a quelli standard (oltre al
porting su mac/unix/linux)?
2) Ho paura che QT mi produca eseguibili più lenti; ho ragione?
3) Ho paura di appesantire troppo i miei progr visto che qt è grossa; ho
ragione?
 

 ragione?
Direi proprio di no. Ancora, dipende cosa intendi con "appesantire i
tuoi programmi" e che cosa sono i tuoi programmi
f/up sul gruppo appropriato, qui siamo terribilmente OT.
-- 
Adesso quando i medici di turno rifiuteranno di esserti d'aiuto / perchè
venne un polacco ad insegnargli che è più cristiano imporsi col rifiuto
pretenderanno che tu torni indietro/e ti costringeranno a partorire per
poi chiamarlo figlio della colpa / e tu una Maddalena da pentire
Newsgroup: it.comp.lang.c++
Titolo: SOFTWARE IN OFFERTA!!!!!

Vendo programmi di tutti i generi tipo:
MS VISUAL BASIC 5.0 ENTERPRISE ITALIANO
ADOBE PHOTOSHOP 4.0 ITALIANO
CORELDRAW 7 ITALIANO
AUTOCAD 13 C4 ITALIANO
MS OFFICE 97 PROFESSIONAL ITALIANO
MACROMEDIA FREEHAND 7.0 ITALIANO
ADOBE ILLUSTRATOR 7.0
ADOBE PAGEMAKER 6.5 ITALIANO
OMNIPAGE PROFESSIONAL 7.0
SOFTIMAGE 3D 3.7 EXTREME
AUTOCAD 14
MACROMEDIA DIRECTOR 5
A PREZZI ECCEZIONALI!!!!!!!
Richiedi la lista a:
fre...@hotmail.com




wrote:
Vendo diversi autoradio con casse rubati da auto, pezzi di macchine e
computer di terza mano sempre rubati , dispongo anche di ashish e
cocaina a buon prezzo !!
Antonio Tanzillo  
a...@netgroup.it
Marigliano (NA)  
www.netgroup.it/atsoft

Spero tu stia scherzando, non fanno piacere certi messaggi
Saluti
Valentina

invece e' uno scherzo... E' di pessimo gusto...
Possibile che non abbiate capito la sua ironia?? C'era uno che offriva
spudoratamente programmi piratati su cd masterizzati e lui,
ironicamente, ha detto che vendeva pezzi di auto rubate etc.
Con rispetto... sveglia!
Ciao
Alessio Sangalli

 Con rispetto... sveglia!
Oppssss... Scusate l'errore... ho letto il  MSG in
it.comp.sicurezza.virus e non c'era traccia del MSG a cui lui
rispondeva... Non avevo neanche notato il CrossPost...
Scusate nuovamente...
-- 
Bye Bye ]\[ik                {~._.~}
                              ( Y ) 
---------------------------- ()~*~() ----------------------------
            Mirko Nicoletti - netPartner s.r.l. - Italy
                 Milano - Torino - Ferrara - Aosta
     Telecom Italia Official ISDN/InterNet Solutions Provider
--------------------------------o--------------------------------
                      Pionieri CRI Ferrara
-----------------------------(_)-(_)-----------------------------



A PREZZI ECCEZIONALI!!!!!!!

---------------------


Newsgroup: it.comp.lang.c++
Titolo: uso alternativo di volatile?

Tempo fa c'è stato una interessante discussione su volatile.
Tuttavia mi è rimasto un dubbio in quanto in un programma GNU
ho trovato una cosa del genere:
  // volatile needed when fp hardware used,
  // and has greater precision than memory doubles
  volatile double x = 1.0;
  double y = 0.5;
  do
  {
    // find largest fp-number < 2.0
    t.d = x;
    x += y;
    y *= 0.5;
  }
  while (x != t.d && x < 2.0);
Qualcuno sa darmi delucidazioni a riguardo?
Grazie  Manlio Perillo

Qualcuno sa darmi delucidazioni a riguardo?
Il problema e' che spesso le FPU hanno spesso una precisione
superiore alla precisione di una rappresentazione in memoria
(ad esempio la FPU interna dei pentium mantiene i dati con
 80 bit di precisione). Se si sta scrivendo un programma che
vuole verificare la precisione di rappresentazione e'
necessario assicurarsi che il compilatore non utilizzi
valori mantenuti in registri FPU in quanto altrimenti i
calcoli sarebbero falsati.
Un modo di forzare la cosa e' dichiarare una variabile come
volatile; in questo caso infatti il compilatore e' forzato
a ricaricare il valore ogni volta che viene indicato dal
sorgente e questo impedisce di avere risultati intermedi
mantenuti con precisione troppo alta.
Il motivo e' che "volatile" comunica al compilatore che
qualcosa di esterno alla logica della funzione potrebbe aver
alterato il valore della variabile e che noi siamo
interessati a un eventuale nuovo valore; in realta' la cosa
non e' vera in questo caso ma serve per forzare il
compilatore a non considerare il contenuto dei registri FPU.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 >Tempo fa c'è stato una interessante discussione su volatile.

Come sempre sei chiarissimo, grazie.
Manlio Perillo

Come sempre sei chiarissimo, grazie.
Manlio, ti pregherei di quotare lo stretto indispensabile ;)
Grazie...
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: VC++ e intellisense

Sapete come includere la libreria directx???
alcuni oggetti directx sulla mia macchina stranamente sono compresi e quindi
se digito -> appaiono i membri....
se l'ho fatto io non so come........
vorrei la supportasse tutta............
grazie in anticipo

Prodigy2 wrote:

Che ne dici di spiegarti meglio ?
Comunque intellisense ti da i membri delle funzioni implementate.
Io per far funzionare intellisense con OpenGL ho dovuto rinominarmi  il
file header in myOpenGL.h e implementare (con statement vuoti) tutte le
funzioni che mi interessavano.
Ricorda ovviamente di includere il file myOpenGL.h nel project.

 Ricorda ovviamente di includere il file myOpenGL.h nel project.
Che sia questa la soluzione al problema? Spiegati meglio.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------