mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: URGENTISSIMO! Lo SPAWNL non chiama come vorrei!

Ciao a tutti,
	chiamando 
	_spawnl(cost, prog_name, prog_name,NULL)
	quale deve essere la costante cost affinche' possa ottenere l'effetto
	di mandare in esecuzione il prg chiamato e mettere contemporaneamente
	in attesa quello chiamante, riattivando quest'ultimo solo quando il prg
	chiamato ha terminato l'esecuzione.
	Ho provato con _P_NOWAIT, ma l'effetto non e' esattamente quello
	da me voluto, infatti il prg chiamante continua l'esecuzione e manda 
contemporaneamente in esecuzione quello chiamato, _P_WAIT, 	ovviamente,
genera l'effetto opposto. Non vedo
	altre costanti da poter usare.
	Anche soluzioni alternative allo SPAWNL sono bene accette,
	purche' funzionanti.
	Vi prego. Datemi una mano. Sono incasinatissimo!
	Bye
	Enrico

ha bisogno di ulteriori chiarimenti.
Riassumo il tutto.
Ho il driver di uno scanner (C:\Scantool\Scantool.exe) che devo
mandare in esecuzione esterna
da un mio programma scritto in VC++ 4.0, usando
 	spawnl(cost, prog_name, prog_name,NULL)
ottengo i seguenti risultati:
	- const = P_WAIT, il mio programma si blocca in attesa di
	  qualche evento mentre il driver non parte, nonostante 
	  esso compaia tra le applicazioni attive in quel momento
	- const = P_NOWAIT, entrambi i processi (chiamante e chiamato)
	  procedono l'esecuzione concorrenzialmente (non e' l'effetto 
	  che voglio)
	- const = P_OVERLAY e P_DETACH da effetti che non voglio in
	  alcun modo considerare
In teoria, P_WAIT dovrebbe lanciare il driver, far attendere il mio
programma finche' non finisce l'esecuzione del driver e poi far
riprendere il mio programma. Come vedi, pero',  l'effetto non e'
quello previsto.
Allora ho provato con P_NOWAIT seguito da un cwait;
 	int ProcID = spawnl(P_NOWAIT, prog_name, prog_name,NULL)
	cwait(&term, ProcID, NULL);
ma anche in questo caso ho lo stesso effetto che ho ottenuto
semplicemente con il P_WAIT. Ho utilizzato il NULL al posto del
WAIT_CHILD perche' (ho avuto modo di verificarlo) Win 95 e 
Win NT considerano comunque NULL il terzo parametro della
cwait, qualunque valore gli si passi.
Il bello, pero', e' che utilizzando un'applicazione tipo NOTEPAD,
invece, il tutto funziona come dovrebbe. Possibile che il
driver sia scazzato? Me l'hanno venduto assieme allo scanner, ma....
Grazie per la collaborazione
Bye
Enrico
Newsgroup: it.comp.lang.c++
Titolo: costruttori parametrizzati ed ereditarietà

Salve gente volevo un consiglio su come risolvere il seguente problema;
Ho due classi di cui una base ed una derivata;in quella derivata mediante il
suo costruttore devo passare il parametro per se stessa ed i due paramertri
per la classe base atleta.A questo punto il secondo parametro da passare č
una stringa ,solo che quando esegueo il programma mi viene visualizzata solo
la prima lettera della stringa , poi il resto va tutto bene.
Ora riporto codice e risultato doipo compilazione;
#include <iostream.h>
#include <conio.h>
class atleta{
    protected:
                  char *nome;
                    char *cogn[50];
                    int  anni;
    public:
          atleta( int x , char *n){anni=x ; nome=new char ; *nome=*n;}
          void set_cogn(char *m){*cogn=m;}
        ~atleta(){delete nome;}
       };
         class calciatore : public atleta{
                                                      int *goal;
                               public:
                                 calciatore(int y,char *at,int
a):atleta(y,at)
                                          {goal=new int;*goal=a;}
                                  void
show(){cout<<*nome<<'\n'<<*cogn<<'\n'<<anni<<'\n'<<*goal;}
                                 ~calciatore(){delete goal;}
                                                    } ;
int main()
{
calciatore obj(32,"Bobone",7);
obj.set_cogn("Vieri");
obj.show();
getch();
return 0;
}
Se si compila tale file viene fuori: B            non c'č tutta la stringa
                                                  Vieri
                                                   32
                                                   7

 
Togliendo tutto ciň che non c'entra con il tuo problema...
  const char* n = "Bobone";
  char* nome = new char;
  *nome = *p;
Questa ultima istruzione fa le seguenti operazioni 
  1. dereferenzia 'nome', che č un puntatore a un char
  2. dereferenzia 'p', che č un puntatore a un char const
  3. assegna al carattere puntato da nome il valore del carattere
   a cui punta p
Qual č il tuo problema? I puntatori a carattere sono *puntatori* (chiamarli
"stringhe" č solo fuorviante). 'new char' alloca dinamicamente un singolo
char (non una stringa, non un array, un semplice singolo char).
Soluzione: usare std::string.
Max

           atleta( int x , char *n){anni=x ; nome=new char ; *nome=*n;}
con l'istruzione 'nome=new char' tu allochi uno spazio di memoria di un
carattere e con l'istruzione '*nome = *n' tu assegni il primo (ed unico)
elemento dell'array. E' ovvio che poi non riuscirai a memorizzare piů
caratteri nel nome...
Il programma č fondamentalmente sbagliato. Le operazioni che fai sui
puntatori non hanno molto senso, non sono sicure e senza approfondire troppo
direi che sei fortunato se il programma non crasha. Ti conviene studiare
bene la libreria standard e soprattutto std::string. Se proprio vuoi usare
le stringhe in "stile C" (con puntatori a caratteri) allora cerca almeno di
usare le funzioni preposte ereditate dal C.
Marco
Newsgroup: it.comp.lang.c++
Titolo: problemi di un newbie

scusate se disturbo..
Sto passando a vc++ per necessita', e ho un primo scoglio a capire del
codice scritto da un altra persona.
potete spiegarmi cosa significa questo?
m_VariabileStringa = (m_VariabileStringa2.Mid(8,1) == "0") ? ("d5") :
("s5");
cosa fa l'operatore ' ? ' e quello ' : '
grazie per ogni risposta (anche quella di darmi all'ippica.. :-) )
ps. vengo dal delphi...
saluti
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ("s5");
Verifica la condizione  (m_VariabileStringa2.Mid(8,1) == "0")   se vera
restituisce ("d5")  altrimenti ("s5")
non la uso mai però il concetto è quello

 
No, lascia perdere l'ippica e comprati un manuale di C++ o scaricati
qualche buon tutorial. 
Max

 wrote in message
news:3KqE8.61682$
US3.1...@twister1.libero.it

Grazie.. molto chiaro :-)


Newsgroup: it.comp.lang.c++
Titolo: Ottimizz. compilatore VisualC++6 per Pentium Pro ?!?

Ciao, sto cercando un modo per velocizzare l'esecuz. di un codice un po pesante
(40 minuti su celeron 300A con 128 mega) il quale ha 4 cicli da 100 x 100x 100 x
64 annidati. 
Usando un po div ariabili di appoggio e register ho ridotto il tempo a 32
minuti. Poi girando per le opzioni del compilatore ho settato  le voci 
Optimize for maximum speed 
Optimize code for Pentium Pro
All'inizio non mi compilava il codice, mi diceva che alcune opzioni erano in
conflitto, poi , semplicemente cancellandone alcune (-Zi e -Gz) me lo ha
compilato ed ora gira in 12 minuti.
La domanda: togliendo quelle cose ho fatto qualche danno al file compilato?
Perche non ci pensa il compilatore a toglierle? 
Esistono per caso delle ottimizz. per pentium 2 oppure e +/- lo stesso?
Grazie.
-----------------------
Perche guardare la marcuzzi?
Semplice costa meno dell'eroina ed e legale!
GYps!


ICQ #34602650

Perche non ci pensa il compilatore a toglierle?





VC++.
Esiste anche un profiler in VC 5.0 che ti puo' aiutare un po' nel tuning
(Project|Settings|Link|Genera|Enable Profiling check box, poi
Build|Profile).
Ciao, Marco.
Newsgroup: it.comp.lang.c++
Titolo: arrays come ritorno di funzione

Accidenti ragazzi ho problema che sembra stupido ma...
ho bisogno che una certa funzioni debba ritornare un'array di interi, ma come posso fare?per esempio:
int arrayfunc()
{
 for(i=0;i<10;i++)
  scanf("%d",list[i]); //mettete che i e list siano dichiarati come int i,list[7];
  return list;
}
un'array esterno deve poi prendere la variabile riportata da quella funzione,
come posso fare?
grazie

Non sono un grande esperto, ma potresti definirti un tipo array col typedef
e fargli ritornare quello, no?
Probabilmente non era questo ke volevi sapere, ma io ci ho provato ;-)
Ciao, Simone.


 wrote in message
news:gog47.99706$cd.5...@news1.tin.it...

1 - la funzione deve ritornare un puntatore a int, non un int
    int * arrayfunc() { ........}
2 - list[7] deve essere dichiarato static, altrimenti viene perso
     all'uscita dalla funzione.  static int list[7];
    (soluzione alternativa dichiarare     int * list e quindi allocare
spazio per i     7 interi con malloc()
3 - se list può contenere 7 interi il  for(i=0;i<10;i++) va a scrivere
fuori dalla
     zona allocata gli elementi di indice 7,8,9. (Probabile crash)
    Dichiara list[10] o cambia il 10 nel for con 7
4 - scanf() richiede l'indirizzo delle variabili', quindi:
      scanf("%d",  &list[i]);
5 - return  &list[0]     se hai dichiarato l`' array static
      return list             se hai dichiarato int * list e usato
malloc().
      In questo caso, dopo che tutte le funzioni che ricevono list come
      parametro hanno finito il loro lavoro,   devi fare free(list);
HTH

La soluzione migliore e` quella di passare alla funzione
un riferimento ad un vettore di interi (std::vector<int>&)
La funzione provvedera` ad inserire nel vettore gli elementi
che deve tornare, senza doversi preoccupare di allocare memoria,
inoltre il chiamante ha la sicurezza che il distruttore del vettore
provvedera` a liberare automaticamente tutte le risorse impiegate.
Paolo
--
Paolo Marotta
Home: 
http://web.tiscalinet.it/paolo_marotta
Master's Level in C++ Certified by Brainbench
http://www.brainbench.com/transcript.jsp?pid=2440649

 ha scritto nel messaggio
news:46085f8.01071...@posting.google.com...


Newsgroup: it.comp.lang.c++
Titolo: [semi-OT] librerie non standard...

qualcuno mi potrebbe indicare qualche libreria tipo ncurses che funzioni
anche sotto win? ambiente testuale, of course
grazie
ciao
Raffaele

 ha scritto nel
messaggio news:asr2q7$njo$2...@lacerta.tiscalinet.it...

ho un ricordo sbiadito dell'esistenza di una libreria che si chiamava
conio.h (la usavo sotto C una marea di tempo fa in  ambiente Dos/Win)
buon lavoro,
Nids

 funzioni anche sotto win? ambiente testuale, of course
ncurses per windows, o mi sfugge qualcosa?

"Paolo Podda" <p.p...@tiscaliNOSPAM.it> ha scritto nel messaggio
news:1356221.7...@news.iol.it...

ho trovato il sito, non è ancora stato portato a quanto ho capito, ma c'è
scritto che è previsto il port per win e dos
ciao
Raffaele
Newsgroup: it.comp.lang.c++
Titolo: Semplicissimo programma

//Determina i 2 interi più grandi di una serie di 10 numeri
#include <iostream.h>
int main()
{
    int contatore, numero, M1, M2;
     //fase di inizializzazione
     contatore = 1;
     M1 = 0;
     M2 = 0;
    //fase di elaborazione
    while (  contatore <= 10 ) {
         cout << "Inserisci un numero:";
         cin >> numero;
         if ( numero > M1 )
            M1 = numero;
         else
            if ( numero < M1 )
             M2 = numero;
         contatore++;
    }
         cout << "I 2 numeri più grandi sono: " << M1 <<" "<< M2 << endl;
     return 0;
}
Questo programma invece di visualizzare i due numeri più grandi di una serie
di 10 mi visualizza soltanto il maggiore e poi l'ultimo inserito.Come posso
fare per risolvere il problema, ossia visualizzare i 2 numeri più grandi?
Grazie per la cortese disponibilità

              M2 = numero;
a prima vista, mi sembrerebbe meglio
             else
              if ( numero > M2 )
               M2 = numero;
però non ci ho riflettuto troppo, provalo !

 wrote


E' ovviamente meglio ma non basta supponi di avere:
10 15 8
dopo 10:
M1 = 10
dopo 15:
M1 = 15
dopo 8
M1 = 15
M2 = 8
Ovviamente il risultato da ottenere e' invece:
M1 = 15
M2 = 10
quindi serve una cosa del genere:
ciclo{
    if (numero>M1){
        M2 = M1;
        M1 = numero;
    }else{
        if (numero>M2){
             M2 = numero;
        }
    }
}
Ovvio che questo per una sequenza tipo:
6 11 19 2 13 19 18 19 13 9
direbbe:
M1 = 19
M2 = 19
Penso sia questo quello che vuoi (visto che c'e' piu' di un 19). Se non e'
questo quello che vuoi, ma vuoi 19,18 allora basta aggiungere un
controllo....
Tommy

 ha scritto nel messaggio
news:bsksbj$fll$1...@sparta.btinternet.com...
Ciao, penso che hai ragione...
Non bisognerebbe rispondere quando si ha troppa fretta...
Comunque ricordo al nostro amico Angelo che l'uso attento di un debugger
facilita molto il controllo di quello che fanno i nostri programmi...
oppure, anche senza il debugger ci sono strategie per controllare meglio
(magari con un log su file) quello che il nostro programma sta combinando...
Ciao e tanti auguri!
Newsgroup: it.comp.lang.c++
Titolo: Libro sul C++

Ancora una domanda che sicuramente avrete visto n+1 volte:
quali libri consigliate per imparare il C++(magari gratis=scaricabili)?
Sarebbe magari utile una classificare tali libri come "per iniziare 
dando una sgrossata" oppure "per utenti intermedi\esperti" oppure
"per applicazioni di tipo x" etc......
Grazie
                                       Chef

 wrote in

Visto che oggi si e' parlato di FAQs:
http://www.emagsoftware.it/faqcpp.txt
leggi le FAQs numero5 e 6.
Dalla 5 dai una occhiata al sito di Bruce Eckel e alla traduzione del suo 
libro in Italiano: 
http://pensareincpp.altervista.org
Per cio' che riguarda la 6, nota che di C++ Primer ora c'e' la 4a edizione 
che a mio avviso e' ancora piu' accessibile e mette ancora piu' in risalto 
(fin dall'inizio) la libreria standard.
Tommaso Galleri

 Per cio' che riguarda la 6, nota che di C++ Primer ora c'e' la 4a edizione
Aggiornata, grazie.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
Newsgroup: it.comp.lang.c++
Titolo: Puntatori costanti a oggetti costanti

Ho un terribile dubbio esistenziale.
Sono 15 minuti che mi interrogo su quale sia la sintassi di una funzione che
ritorna un puntatore costante a oggetto costante...... il secondo const va
prima o dopo lo *?

 prima o dopo lo *?
Dovrebbe essere
     const int * const myfunction(...);
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

      const int * const myfunction(...);
tnk

 prima o dopo lo *?
const T* const foo();
Oppure potresti anche utilizzare un reference costante.
    const T& foo();
-- 
Domenico Testa - Studente appena sveglio
Newsgroup: it.comp.lang.c++
Titolo: DLL VC++ 5.0 da usare in VB Professional SP3 5.0

Ciao a tutti,
   ho un problema con una DLL creata in VC++ 5.0:  la DLL praticamente
esegue la trasformata di fourier di 2 vettori double passati come ingresso e
la restituisce come uscita su altri 2 vettori.  tutti e 4 i vettori sono
passati come parametri della funzione.
Il prototipo della funzione è il seguente:
void __declspec( dllexport ) _stdcall fft_double (
    unsigned  NumSamples,          /* must be a power of 2 */
    int       InverseTransform,    /* 0=forward FFT, 1=inverse FFT */
    double   *RealIn,              /* array of input's real samples */
    double   *ImaginaryIn,         /* array of input's imag samples */
    double   *RealOut,             /* array of output's reals */
    double   *ImaginaryOut );      /* array of output's imaginaries */
...e la dichiarazione in VB è questa:
' InverseTransform -->  0=forward FFT, 1=inverse FFT
Public Declare Sub fftDDll Lib "fft.dll" Alias "fft_double" _
                            (ByVal NumSamples As Long, _
                             ByVal InverseTransform As Integer, _
                             ByRef RealIn() As Double, _
                             ByRef ImaginaryIn() As Double, _
                             ByRef RealOut() As Double, _
                             ByRef ImaginaryOut() As Double)
...proprio non so' cosa cacchio fare!!! mi da' un errore assurdo: non sto'
dicendo che mi da' un errore di run-time standard... mi si pianta il VB e mi
da' un errore in VBA5.DLL!!!!
VB5 ha provocato un errore di pagina non valida nel
modulo VBA5.DLL in 0177:0fbd43f2.
Registri:
EAX=000000a1 CS=0177 EIP=0fbd43f2 EFLGS=00010286
EBX=0064cfcb SS=017f ESP=007ff068 EBP=007ff0fc
ECX=0fbd44c9 DS=017f ESI=0064cf94 FS=5be7
EDX=0063d7b0 ES=017f EDI=f9b83cd1 GS=0000
Byte all'indirizzo CS:EIP:
66 83 3f 01 75 14 8b 5f 0c 0b db 74 0d 58 2b 47
Immagine dello stack:
00000000 00000001 00000080 00000000 007ff108 00647f6e 00000004 3feffd88
00000100 00000000 0fbd7b5c 3feff621 f10dd814 bfa91f65 007ff130 0064cf6c
Help please!!!!
Alberto G.
san...@clu.it
Cb Gandalf  27.275 Genova
SWL Ge/3093

 [ . . . . ]
In C++ a 32 byte il tipo di dato int è a 32 bit, mentre in VB un integer è a
16 bit.
Prova modificando int in short (C++) o integer in long (VB)
Bruno

Prova modificando int in short (C++) o integer in long (VB)
Meglio la seconda soluzione: usare sempre Long al posto di integer...
Sidewinder
Newsgroup: it.comp.lang.c++
Titolo: Libro per imparare

Ho visto vari Post...
ma non riesco più a trovarli e non mi ricordo il titolo del libro che
consigliavate... postreste ridirmenrlo? 
Grazie ;-)
E scusate...

...

Non so a quale post ti riferisci ma per imparare il C++, te ne consiglio 2,
uno elettronico free e l´altro cartaceo con contanti!
Quello free te lo scarichi da
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
e si chiama "Thinking in C++" seconda edizione autore Bruce Eckel.
Quello cartaceo si chiama "C++ primer" terza edizione Lippman-Lajoie circa
46 dollari , ma non so quanto costa se lo ordini con amazon, oppure se lo
compri in libreria in versione italiana.
Bai bai
Mauro

Riccardo ha scritto:
Guarda come si fa un ottimo investimento:
Vai in libreria e cerchi:
Autore: Stanley B. Lippman e Josée Lajoie
Titolo: C++ corso di programmazione terza edizione
Editore: Addison & Wesley
Costa 89.000 ma li vale tutti e anche più
lo trovi anche su 
www.addison.it
        fai la ricerca per autore e cerca Lippman 
(che è l'autore pricipale)
ciao
 
-- 
Luigi
--
bug windows [5] = {"95", "98", "NT", "Me", "2000"};

 compri in libreria in versione italiana.
In libreria costava, qualche tempo fa, 89.000 lire.
EMG

Ho comprato il libro di Lippman... in italiano ;-)
A fine capitolo ci sono le esercitazioni... domande... dove posso
trovare l risposte... per verificare i risultati a cui arrivo?
Grazie... ciao Riccardo ;-)



C++ Primer Answer Book
Clovis L. Tondo & Bruce P. Leung


wrote:

Newsgroup: it.comp.lang.c++
Titolo: Libro su Builder 1.0

Ciao a Tutti !!
    E' la prima volta che scrivo in questo NG dato che non ho mai
programmato in C++ !! :-)
    Programmichio in delphi e recentemente ho deciso di intraprendere
anche la strada del C++, cosi' approfittando della generosità di Inprise
mi sono procurato una copia del C++ Builder 1.0 standard edition
distribuito gratuitamente.
    Potreste consigliarmi un buon libro per cominciare a muovere i primi
passi con il linguaggio C++, megli se si riferisce all' ambiente
Builder.
--
 Grazie, Matteo.
 Home Page : hhtp://
www.geocities.com/hollywood/hills/7847

Builder.
Ora non so se sei in tempo, ma procurati la versione 3.0 di BCB su
Inter.Net...
Comunque se ti interessa un buon libro sulla programmazione in C++
inizia con quella al di fuori di un determinato ambiene con un buon
testo come il tutorial di Paolo Marotta (
www.programmazione.it
 |
downloads | C & C++ | Tutorial di Paolo Marotta) o Thinking in C++ di
Bruce Eckel (
www.BruceEckel.com
).
Ciao.
DGP85

 Bruce Eckel (
www.BruceEckel.com
).
Grazie del suggerimento ho scaricato il tutorial di Marotta da
programmazione.it
 e devo dire che e' veramente ottimo, tratta un argomento
non certo semplice come la programmazione C++, in modo estremamente chiaro e
scorrevole.
Gia' che ci sono ho un altra domanda, quando tento di rifare gli esempi di
codice proposti in vari tutorial questi cominciano con :
using namespace std;
L' unico modo per compilari e' eliminare questa linea di codice, perche ?
--
 Ciao, Matteo.



L' unico modo per compilari e' eliminare questa linea di codice, perche ?
Compilatore non standard.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

 L' unico modo per compilari e' eliminare questa linea di codice, perche ?
Perché il compilatore che usi non č conforme allo standard.
EMG
Newsgroup: it.comp.lang.c++
Titolo: std::map con custom key

Ciao a tutti ho il seguente problema
dichiaro una mappa con una chiave custom nel tal caso una struttura
inserimento OK
mq quando vado a prendere i valuri mi salta il secondo inserito?
sbaglio qualcosa?
KEY
struct FsmTransitionKey
{
     int m_eventId;
     int	m_statoAttuale;
     inline bool operator<( const FsmTransitionKey &right) const
     {
	if ( (m_eventId<right.m_eventId) && (m_statoAttuale<right.m_statoAttuale) )
	{
	    return true;
	}
	else
	{
	    return false;
	}
     }
};
MAPPA
typedef std::map<FsmTransitionKey,pt2Member>   FsmTransitionMap;
INSERIMENTO
     FsmTransitionKey transK;
     transK.m_eventId=1;
     transK.m_statoAttuale=1;
     m_transitionMap[transK]=this->ProcessFunOne;
     transK.m_eventId=1;
     transK.m_statoAttuale=2;
     m_transitionMap[transK]=this->ProcessFunTwo;
     transK.m_eventId=1;
     transK.m_statoAttuale=3;
     m_transitionMap[transK]=this->ProcessFunOne;
ESTRAZIONE
     FsmTransitionKey transK;
     transK.m_eventId=1;
     transK.m_statoAttuale=1;
     if (m_transitionMap[transK]==&PlProcess::ProcessFunOne)
	(pl.*m_transitionMap[transK])(plMsg);
     transK.m_eventId=1;
     transK.m_statoAttuale=2;
     if (m_transitionMap[transK]==&PlProcess::ProcessFunTwo)
	(pl.*m_transitionMap[transK])(plMsg);
     transK.m_eventId=1;
     transK.m_statoAttuale=3;
     if (m_transitionMap[transK]==&PlProcess::ProcessFunOne)
	(pl.*m_transitionMap[transK])(plMsg);
cosi' mi salta la combinazione 1 2
se non metto la terza entry mi salta la combinazione 1 1
Thanx TD

     return true;
Questa implementazione non va bene. Dati due oggetti a e b, se vale (!(a < b) &&
!(b < a) ), allora a e b devono essere equivalenti. Nel tuo caso, però, se
a.m_eventId == b.m_eventId, l'espressione suddetta è vera anche quando
a.m_statoAttuale != b.m_statoAttuale (cioè anche quando gli oggetti non sono
equivalenti).
Dovresti fare così:
 if( m_eventId<right.m_eventId ) return true;
 else
   if( m_eventId==right.m_eventId &&
         m_statoAttuale<right.m_statoAttuale ) return true;
 else return false;
Max

Max M. wrote:

E hai molta ragione mo funge!
Thanx a lot

 };
L'operatore < e' sbagliato. In questi casi cosi' semplici
usa semplicemente un std::pair.
Gaetano

 
Si ho visto il post di Max e ho risolto il problema
per quanto riguarda i Pair non li ho presi in considerazione per due ragioni
1) perche' il caso e' semplice...
2) per il fatto che la key potrebbe variare lungo la strada..... :-)
    in tal caso l'uso di Pair sarebbe troppo limitante...
Ci sono motivazioni che non conosco per usare Pair?
Gaetano tu usi i Pair e come funzionano?
Performanti? Comodi? vantaggi/svantaggi contro una classe "Custom"?
Famme sape'
Ciao TD
Newsgroup: it.comp.lang.c++
Titolo: ABC dei stream......

probabilmente alcune domande le avevo già postate ma poi non ho più seguito
l'ng x cui scusate :)
Allora... volevo sapere come apre un file un fstream(file,ios::trunc); ho
una minidescrizione sull'help "tronca il file" ????
Dato che la cosa mi interessa volevo sapere se era possibile ridimensionare
un file; vi faccio un esempio....
ammettiamo di avere un file di testo che contiene "abcdefg" ecco... come
potrei fare in modo da eliminare la parte iniziale x esempio abc in modo da
farlo diventare "defg" senza riscrivere il file? oppure fare l'operazione
dalla parte opposta cioè togliere efg lasciando il resto... o ancora
eliminare una parte centrale del file come cde??? ecco come forse serve il
trunc....
speriamo di essermi spiegato bene....

 speriamo di essermi spiegato bene....
non credo... , stai lavorando con un file sequenziale per ciò l'unica
soluzione è quella di crearne uno nuovo. (spero d'essere smentito :))
Ciao
Terenzio

io credo invece che sia possibilissimo.... molti prg di defrag per esempio
spostano parti del file da lati ad altri del disco e il so li riconosce
ugualmente.... daccordo che probabilmente lavora piů a basso livello ma sono
disposto a dare anche qualcosa in piů!!!
non c'č nemmeno un veterano che abbia una mezza idea?

 non c'è nemmeno un veterano che abbia una mezza idea?
Temo che non sia possibile. Ho avuto lo stesso problema qualche tempo fa e non
sono riuscito a venirne fuori.
Ho trovato ad esempio delle API non documentate per Windows NT 4.0 che sono
quelle utilizzate dai programmi di defrag. Nonostante siano incredibilmente ben
fatte (le API lavorano solamente sull' NTFS e garantiscono l'impossibilità di
danneggiare i file che si stanno spostando) non servono al nostro caso. Il
problema è che di un file non viene tracciata la singola posizione di ogni byte,
ma quella dei cluster che lo compongono (nell'NTFS generalmente 4KB, ma dipende
dalla dimensione della partizione). Quindi anche riuscendo a cancellare (o ad
inserire che era il mio problema) dati all'inizio del file questi dovrebbero
avere un dimensione perfettamente divisibile per la dimensione del cluster
dell'harddisk su cui risiede il file (dimensione che come ho detto prima è
variabile).
Mondo triste e infame conclusi io allora, e temo che ti tocchera di fare lo
stesso. Ciao.

Newsgroup: it.comp.lang.c++
Titolo: creazione file .bmp e .jpg

Sono alla ricerca della logica con cui sono scritti i file .bmp e
.jpg. Dove la posso reperire? Qualcuno ha qualche idea, consiglio da
darmi? Grazie.

Ciao,
Questo newsgroup si occupa del linguaggio di programmazione C++. Per
questo non e' il posto piu' adatto per porre domande come la tua. Ti
invito a cercare un gruppo il cui argomento sia piu' rispondente alle
tue esigenze. Avrai maggior probabilita' di risolvere il tuo problema
ed
eviterai perdite di tempo a chi consulta it.comp.lang.c++ .
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Compilazione su XP di Truecrypt con VC++  Express

Salve a tutti, sto continuando a dannarmi per compilare truecrypt su
windows xp.
Dopo varie ed innumerevoli peripezie sono riuscito a compilare la
"parte c++", ma ancora ci sono delle cose che non tornano.
In pratica, il programma è composto da 6 sottoprogetti e alla
compilazione del primo dovrebbe generare dei file .com e dei file
binari che verranno poi usati anche dagli altri sottoprogetti solo
che  non ci riesco.
Finora avevo errori in compilazione, nei vari sottoprogetti, ora non
più tranne quelli dovuti appunto a questi file che non vengono
generati.
L'errore che ricevo alla compilazione del primo sottoprogetto è:
------ Build started: Project: Boot, Configuration: Release Win32
------
Performing Makefile project actions
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio9.0\VC
\bin\cl.exe' : return code '0xc0000135'
Stop.
Project : error PRJ0019: A tool returned an error code from
"Performing Makefile project actions"
Build log was saved at "file://c:\TC\Boot\Windows\Release
\BuildLog.htm"
Boot - 9 error(s), 0 warning(s)
All'inizio pensavo che il problema fosse dovuto al fatto che non
trovava il percorso per il file  cl.exe, ma il percorso mostrato
nell'errore è giusto. Se da terminale do nmake o cl i comandi vengono
trovati, per cui il problema non è quello.
Potete aiutarmi?

magari semplicemente con l'express edition non compila.
Dal readme si legge:
Requirements for Building TrueCrypt for Windows:
------------------------------------------------
- Microsoft Visual C++ 2008 SP1 (Professional Edition or compatible)
- Microsoft Visual C++ 1.52 (available from MSDN Subscriber Downloads)
- Microsoft Windows SDK for Windows 7
- Microsoft Windows Driver Kit 7.0.0 (build 7600.16385.0)
- RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 2.20
  header files (available at
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20
)
- NASM assembler (2.06 or compatible)
- gzip compressor
Te questi requisiti li hai?
hai installato il platform sdk?
e il nasm?
Poi ripeto magari con l'express semplicemente non si può fare.

 Poi ripeto magari con l'express semplicemente non si può fare.
Perchè dici di no?
Tra l'express e l'edizione premium cambieranno alcune librerie, ci
saranno dei tools in più o in meno, ma la base dovrebbe essere la
stessa
Newsgroup: it.comp.lang.c++
Titolo: Template e specializzazione

Ciao a tutti,
avrei bisogno di un chiarimento sui template. Ho un mio template e fin qui non ci sono problemi, ho del codice tipo:
template <class T>
class BusinessDay : public Date
{
...
Ora vorrei che il tipo T fosse un derivato di un'altra mia class Calendar. Come posso forzare questo? 
Grazie per l'aiuto!
Mirko.

 Calendar. Come posso forzare questo? Grazie per l'aiuto!
cioe', vuoi la parametrizzazione solo sui derivati di Calendar?
in questo caso, non riesco ad immaginare perche' non usare 
l'ereditarieta'...
sai quella cosa tipo
Calendar* c = new myCalendar();
comunque, potresti creare una funzione membro Calendar::IsCalendar() 
che restituisce true, e verificare nel codice di BusinessDay supponendo 
t il dato di tipo T 
if(t.IsCalendar())...
cosi' avresti un compile time error se istanzi BusinessDay<int>

Ciao.
Non c'e' modo di esprimere esplicitamente cio' che chiedi: se il modo in
cui utilizzi il tipo parametro tiene conto della relazione di
ereditarieta' l'utilizzo del template con una classe che non eredita
dalla tua base generera' un errore (anche se e' possibile che una classe
qualsiasi presenti "per caso" la stessa interfaccia e quindi non dia
errore).
L'unica alternativa e' realizzare un meccanismo di "concept checking",
ovvero giocare sui side effect dei template per "costringere" il
compilatore a verificare che la relazione tenga, ma e' una cosa
piuttosto complicata e generalmente non ne vale la pena.
Ciao,
Nicola


Potresti fare qualcosa del genere...
 template< class T, class Base >
 struct base_check
 { 
    base_check() { static_cast<Base*>( static_cast<T*>(0) ); }
  };
 template <class T>
 class BusinessDay : public Date, base_check<T,LaTuaClasseBase>
 {    ...
...anche se non vedo bene quali vantaggi avresti rispetto a far fallire la
compilazione in qualche punto in cui il rapporto di derivazione tra T e
LaTuaClasseBase è indispensabile.
Max

Newsgroup: it.comp.lang.c++
Titolo: Aiuto

.... in laboratorio all'università ho fatto dei programmi con il turbo C++;
funzionava tutto. Poi mi sono copiato il turbo c++ e lo installato sul pc a
casa; ora quei programmi non funzionano più; non mi riconosce cin e cout,
dice che la funzione non può aprire iostream ecc.; visto che non dipende dai
programmi, quale potrebbe essere il problema ?
grazie per l'aiuto
ciao

 wrote in message
7u7rjs$h5f$1...@nslave1.tin.it...


 programmi, quale potrebbe essere il problema ?
Controlla che i file sorgente abbiano l'estensione CPP.
EMG
Newsgroup: it.comp.lang.c++
Titolo: dove scaricare visual c++

   ciao ragazzi dove posso scaricare visual c++?
eswa

    ciao ragazzi dove posso scaricare visual c++?
Visual C++ non è disponibile gratuitamente.
Se ti serve un compilatore per studiare il linguaggio, leggiti le FAQ di
questo gruppo: ci dovrebbe essere un paragrafo dedicato ai compilatori free.
Nelle stesse FAQ trovi anche alcuni suggerimenti bibliografici. (Questo per
rispondere all'altro tuo post.)
 
http://cpp.programmazione.it
Max

>  
http://cpp.programmazione.it
Per la prima volta ho visto la faccia di qualcuno (a parte il sottoscritto)
che posta in questo ng... che emozione!
Bye
Antonio

Antonio Martino wrote:

beh, vista la qualita` della foto che e` sul sito non deve essere stata una
bella esperienza...
ciao Anto


Lo puoi scaricare gratuitamente dal computer di mia Nonna in 50 floppy disk.
In cambio pero' dovrai mangiarti una cofana di zuppa di cipolle e aglio.
Visual Studio si paga, non si scarica.
Se vuoi scaricare un compilatore da internet dovrai rivolgerti verso
prodotti free (gcc per esempio).
In ogni caso sei OT, ti consiglio di chiedere verso newgroup dedicati alla
programmazione sotto windows.

 programmazione sotto windows.
Visual C++, come giustamente dici non si scarica, ma il suo compilatore a
riga di comando, cl.exe, si e dal sito Microsoft. Forse come mi hanno
suggerito e' una versione non ottimizzata, ma non ne sono sicuro. Certamente
si puo' scaricare il Framework .NET e molti dei compilatori, ed altri tool.
(l'IDE la paghi e pure il pacchetto Visual Studio.NET!)
Tommy

 Certamente si puo' scaricare il Framework .NET e molti dei compilatori, ed altri tool.
Si, ma nell'SDK di .NET cl.exe non c'e'.
 bye & Thanks
	av.

 Si, ma nell'SDK di .NET cl.exe non c'e'.
Tanta gente l'ha trovato invece!
Tommy

 devi scaricare il software development kit (SDK)
E' proprio quello che avevo scaricato ed installato io, ma cl.exe non
l'ho trovato.
Ora provo a reinstallarlo e a cercarlo di nuovo.
Non e' che per caso era nel modulo "Samples"? Mi sembrerebbe strano, ma
e' l'unico che non ho installato.
Tu usi la 1.1 o la 1.0?
 bye & Thanks
	av.

 ha scritto nel messaggio
news:20INa.150621$lK4.4...@twister1.libero.it...



Hai ragione: ora l'ho reinstallato ed ho cercato meglio e c'e'.
Il problema e' solo che ti chiede dove vuoi che lo installi poi lo mette
da un'altra parte.
Grazie ancora.
 bye
	av.

 Grazie ancora.
Mi rispondo da solo perche' credo la cosa interessi...
cl.exe c'e', ma manca tutta la libreria C++, intendendo gli header da
includere.
O sbaglio?
 bye
	av.

 O sbaglio?
Mi sembra molto strano... non starai per caso cercando i file .h ?!? Non
hanno piu' estensione .h ti ricordo....
Tommy


Lo so.
Ma non trovo ad esempio utility.
Quando compilo usa quello della versione 6.0 (che ho installato
precedentemente), ed ovviamente produce una serie di errori.
Altri non ne ho trovati.
 bye & Thanks
	av.
Newsgroup: it.comp.lang.c++
Titolo: Aiuto Winsock....

Salve a tutti,
il mio problema è il seguente: sto cercando di creare un server in C++, ma
non so da che parte voltarmi per permettere a più client di collegarsi
contemporaneamente al mio server. Il codice "base" del server è il seguente
(è copiato da un tutorial che ho trovato online); ho tolto i vari controlli
sugli errori solo per permetterne una migliore leggibilità nella mail...
In Java per fare lo stesso lavoro uso i thread, ma non so se è possibile
fare lo stesso in C++ (ah, io uso DEV C++ ).
Grazie mille in anticipo per l'aiuto.
Ursula
    int main(void)   {
        SOCKET sock21,asock;
        sockaddr_in sock_in21,asock_in;
        WORD wVersionRequested;
        WSADATA wsaData;
        int err,backlog=1,addrlen;
        char send_buf[]="**SERVER TELNET DI PROVA**\n\n*****RECEIVE
ONLY*****";
        char recv_buff=' ';
        wVersionRequested = MAKEWORD(2,0);
        sock21=socket(PF_INET,SOCK_STREAM,0);
        sock_in21.sin_family=PF_INET;
        sock_in21.sin_port = htons(IPPORT_TELNET);
        sock_in21.sin_addr.s_addr = INADDR_ANY;
        err=bind(sock21,(struct sockaddr*)&sock_in21,sizeof(struct
sockaddr_in));
        err=listen(sock21,backlog);
        addrlen=sizeof(struct sockaddr);
        asock=accept(sock21,(struct sockaddr*)&asock_in,(LPINT)&addrlen);
        err=send(asock,&send_buf[0],strlen(send_buf),0);
        printf("recv() - Aspetto dati dal client\n");
        while(recv_buff!=KEY_ESC) {
              err=recv(asock,&recv_buff,1,0);
              if(recv_buff!=KEY_ESC) {
                   printf("%c",recv_buff);
                   send(asock,&recv_buff,1,0);
              }
        }
        shutdown(asock,2);
        err=closesocket(asock);
        shutdown(sock21,2);
        err=closesocket(sock21);
        return 0;
   }


Lo Standard C++ non fornisce strumenti per eseguire operazioni di
networking; le funzioni che usi nel tuo esempio non appartengono al C++,
bensì al sistema operativo che stai usando (in questo caso utilizzi le API
della libreria Windows Sockets). Ti consiglio di chiedere informazioni in un
NG più appropriato, ad esempio it.comp.programmare.win32.
In ogni caso la tua supposizione era giusta, puoi usare i thread anche in
C++ se ti appoggi a funzioni del sistema operativo (infatti nemmeno i thread
sono contemplati nel linguaggio C++, in quanto ci sarebbero troppe
differenze tra una piattaforma e l'altra, e il C++ Standard deve essere
cross-platform).
<OT>
Sotto Windows mi orienterei in due possibili direzioni: 1) eseguire il
listen nel thread principale e utilizzare un diverso thread per ogni
connessione accettata; 2) utilizzare operazioni asincrone su socket in
non-blocking mode.
Per la prima soluzione, che di solito preferisco, prova a documentarti
sull'utilizzo della API CreateThread() (trovi tutto su MSDN).
</OT>
Marco

 ha scritto nel messaggio
news:a64upp$ngv$1...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c++
Titolo: WM_QUERYENDSESSION

Salve a tutti, spero che non sia OT questa domanda, se lo è scusate.
Sto gestendo il messaggio WM_QUERYENDSESSION per determinare se l'utente sta
chiudendo la sessione corrente. Tutto ok, sono riuscito senza problemi.
Sarebbe però anche possibile determinare l'esatta azione che ha svolto?
Intendo, è possibile determinare se l'utente ha effettuato uno shutdown, se
ha solo effettuato una disconnessione o magari un cambiamento di utente
ecc...?
Grazie mille.
Luca Carlon

Scusate, ho letto ora che sono domande più gradite sul ng win32. Scusate
ancora.
Luca Carlon

Newsgroup: it.comp.lang.c++
Titolo: QUALCUNO MI AIUTI!!!

Salve io sono un newbie nell'ambiente di sviluppo visuale, e mi sto
improntanto alla programmazione di visual c++, e siccome mi ritrovo un
tantino spiazzato all'inizio, visto che provengo dall'asm 68000 e 8x86
vorrei sapere cmoe faccio a visualizzare una bmp su una finestra che apro in
secondo tempo, in una applicazione che per ora non fà nulla ma ha solo la
finestra primaria e un menu con file modifica ecc. ecc. chiunque usi visual
c++ per i videogiochi mi aiuti!!!!

Exc3ss ha scritto...

Sei OT. Comunque se di c/c++ non ne sai nulla e vuoi programmare 
videogiochi prova a dare un occhio su 
www.blitzbasic.com
-- 
Luc.

Luc <XXX...@katamail.comXXX> wrote in message
MPG.16c1fa853...@news.enter.it...

Beh diciamo che di programmazione C e C++ non sono a secco, quello di cui
sono a secco e di cui non ci capisco nulla è il visual quindi quando uso il
visual c++ non riesco a capire come fare le cose, se qualcuno può aiutarmi
lo ringrazio infinitamente!
Tnx

 lo ringrazio infinitamente!
it.comp.programmare.win32 
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Cosa non va?

Ciao.
Sono un novellino.
Ho qualche problema con il seguente codice d'esempio :
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
   char s[80];
   char *p1;
 
   do{
      cout << "Immettere una stringa: ";
      gets(p1);//Legge la stringa
      //Stampa i valori ASCII di ogni carattere
      while(*p1) cout << (int) +p1++ << ' ';
      cout << endl;
   }while(strcmp(s, "exit"));
   return 0;
}
E' piuttosto banale e con Dev-CPP non mi da problemi di compilazione, ma 
quando provo a lanciare l'eseguibile Win mi dà un messaggio d'errore.
ho provato a compilarlo con g++ con RH9 e mi dice che la funzione gets è 
meglio non utilizzarla...............
?
Grazie a chiunque mi dia una mano.
Alex

       while(*p1) cout << (int) *p1++ << ' ';
Scusate....

 wrote in
news:Xns93D7B41D...@195.31.190.131
: 

Trovato il problema......
Scusate il disturbo.
Alex

Newsgroup: it.comp.lang.c++
Titolo: Perche` il thread si flippa

Ciao,
ho un piccolo problemino. In sostanza il mio programma costruito
con VC++ 5.0 dovrebbe funzionare cosi`:
void __cdecl Manager (void* Pointer)
{
   ...
   EnterCriticalSection (&Cs);
   Start (...);
   LeaveCriticalSection (&Cs);
   ...
   _endthread();
}
void Start (...)
{
   ...
   _beginthread (Manager, 0, NULL);  //adesso non ricordo l'ordine dei
parametri
   ...
}
Una volta fatto Start io dovrei una serie infinita (per adesso
supponiamo che sia
una cosa sensata) di thread:
Manager, Start, Manager, Start, .....
Per alcuni istanti il thread Manager dovrebbe essere presente due volte
ma la
sezione critica dovrebbe evitare problemi.
Succede pero` che qualcosa non viene deallocato e in poco tempo il disco 
comincia a swappare brutalmente.
Cosa devo fare? Forse dovrei chiudere il processo in altro modo?
Help, Help, Help......
Grazie anticipatamente.
-- 
Righetti Michele
University: Universita` degli studi di Padova (Italy)
E_mail address: 
so...@dei.unipd.it
--
Automatic posted from 
anna.dei.unipd.it
 [147.162.2.100]
via Mailgate Server - 
http://www.mailgate.org

Se non ho interpretato male il sorgente penso che succeda questo:
1. Manager() entra nella sezione critica;
2. viene eseguita la funzione start();
3. start() crea un nuovo task che parte dal punto1;
4. il nuovo task si ferma perche' la sezione critica non e' chiusa;
5.  start() termina ed il controllo torna a Manager();
6. Manager() esce dalla sezione critica;
7. il nuovo task e' libero di passare al punto 2;
A questo punto secondo me se il nuovo task e' piu' veloce a creare un altro
nuovo task che Manager() a terminare il task si entra in una reazione a
catena che porta alla creazione di un task dopo l'altro senza che nessuno (o
quasi) venga terminato.
Sinceramente non ho ben capito quale sia il tuo reale problema e quindi non
riesco a suggerirti un altro modo di chiudere il task.
Ciao.
Antonio Donatiello.










Newsgroup: it.comp.lang.c++
Titolo: lettura di un file ascii quale è il campo "a capo" o enter?

buon giorno a tutti, ho un problema che mi sembra un assurdità:
devo importare un file: anagraficacli.txt
per poi usare i dati in esso contenuti, ma non riesco a capire la fine del
recor, quale è il carattere in ascii che delimita la fine di un rigo?
grazie Fabio

 wrote in message
news:BzVO9.53663$Ou4.1...@twister2.libero.it...

Devi controllare che ci sia il carattere 0x0D seguito dal carattere 0x0A
(carriage return e line feed ).
Apri il file in modalita' testo e non binaria.
Attenzione se il file e' stato memorizzato in un sistema Unix/Linux c'e'
solo il carattere  0x0D come fine linea.
La spiegazione e' qua sotto:
"
The root of the problem is that on text files produced on PCs, each line of
text is ended with "\r\n", the equivalent of two ASCII codes {13,10}. In
most Unix programs however, lines of text ends with "\n" when stored on disk
(ASCII code {13}).
The underlying explanation for this is:
"\r" (ASCII Code 13) stands for "Carriage Return", that is, moving the
cursor to the first position in the current line.
"\n" (ASCII Code 10) stands for "Line Feed", that is, moving the cursor to
the next line.
A combination of "\r\n" would then be the equivalent of hitting the "Enter"
key on a keyboard or a typewriter.
Who said a simple thing could not be made complicated?
"
Maurus

 ha scritto nel messaggio
news:auh9cn$7cj0r$1...@ID-125555.news.dfncis.de...


Newsgroup: it.comp.lang.c++
Titolo: Borland C++ builder 3.0

Ciao a tutti,
Conosco abbastanza bene il C, e vorrei passare al C++. Per iniziare sto
leggendo il manuale del Turbo C++ 3.0 per DOS e devo dire che e'
spiegato tutto in maniera abbastanza chiara.
Anche se Win95 non mi piace molto vorrei iniziare a fare qualche
programmino con un compilatore adeguato. Come e' il Borland C++ Builder?
Mi consigliate un libro per imparare ad usarlo?
Grazie ;-)
--
-------
To reply remove NOSPAM from my E-mail.

 
Lo utilizzo da Gennaio 97 ed ho realizzato alcune applicazioni
con facilita' e velocita'. Tra la versione 1.0 e la 3.0 vi
sono alcune differenze che hanno ulteriormente avvicinato
il linguaggio C++ a quello di Delphi (Object Pascal). Ma
per maggiori e piu' professionali dettagli t'ivito a leggere
qualche articolo sulla rivista PDJ 
http://edizioni-globali.com
Ho fatto l'errore di acquistare un libro per imparare prima
a programmare in C++ Builder, ma mi sono accorto che la migliore
cosa e' quella di studiare attentamente l'ambiente. La versione
3.0 ha un miglior Help in linea della 1.0, quindi chedo che
sia sufficiente la manualistica corredata con il Compilatore.
In fondo si tratta di utilizzare un prodotto veramente RAD
con una libreria di classi, la VCL, fatta molto bene.
Si puo' muovere una critica per le estensioni del linguaggio
per supportare perfettamente la VCL che, aime', e' stata scritta 
in Object Pascal per Delphi.
Se hai una buona base di C++, credo che non sia molto difficile
passare a C++Builder.
Buona fortuna, oswald.cpp
Newsgroup: it.comp.lang.c++
Titolo: Neofita C++ Borland

Salve,
programmo da un annetto e mezzo in VB.
Dopo essermi procurato l'IDE di sviluppo della Borland (versione 3) ho
provato a "disegnare" un'interfaccia e a compilare poi il progetto.
Dopo la compilazione ho reperito l'exe dalla directory del programma e l'ho
lanciato con il solito doppio clic: tutto ok, l'interfaccia che avevo
disegnato prima mi è apparsa come un normalissimo programma. Ribadisco che
il programma non eseguiva alcuna operazione perché non ho scritto neanche
una riga di codice.
Ho quindi provato quest'exe appena fatto sul mio portatile dove il C++
Builder della Borland non è installatto e... sorpesa! Ecco il messaggio che
mi è apparso:
File DLL Vcl35.bpl non trovato
Ma con il C++ non è possibile scrivere degli exe indipendenti? Non è
possibile compilare un programma "solo per Windows" (o un altro OS) che non
necessiti di altre DLL o file di Run-time come il Visual Basic?
Grazie mille per avermi letto. A presto!!

 wrote in message
news:8Iuq6.25377$yl2.6...@news1.tin.it...


Newsgroup: it.comp.lang.c++
Titolo: E' possibile abortire la costruzione di una classe?

Ciao,
sto scrivendo un file viewer e ho questo problema:
ho creato la classe PGNFile, che nel costruttore crea
una lista di classi PGNGame, che nel costruttore creano
una serie di classi PGNTag, passando ogni volta come
argomento dei vari costruttori un ifstream, in modo che
ciascuna di queste classi si "autocarichi" dal file...
Ora perň ho un problema: e se in questa catena di classi
una o piů non potessero essere create (file errato)?
E' possibile fare in modo che un costruttore termini SENZA
creare la classe relativa? Oppure devo per forza crearla,
controllarla e in caso deletarla?


Se il costruttore tira un'eccezione l'oggetto non viene costruito.
Se perň nel costruttore prima di tirare l'eccezione sono state allocate 
risorse (con new o di altro tipo (file aperti)) queste devono essere 
liberate prima di tirare l'eccezione.

 creare la classe relativa? 
Terminando il constructor con una eccezione.