mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Implementazione algoritmo bucket sort

Ho provato a implementare l'algoritmo bucketsort per numeri inferiori
a 100.
Ho provato a scriver così la funzione bucket sort, che però mi
funziona a metà, cioè i numeri mi vengono ordinati però alcuni numeri
vengono ripetuti 2 volti e altri scompaiono, ma quelli che mi vengono
stampati sono in ordine. Dove si trova l'errore? Io non lo riesco a
vedere, su dev-c++ questa funzione mi viene compilata correttamente su
vc++6 invece mi vengono dati errori nella riga in cui viene dichiarato
bucket.
Grazie
void bucketsort(int a[], int size){
 const int siz= size-1;
 int bucket[10][siz];
 int cifre[2];
 int prima, seconda;
 for (int h=0; h<2; h++){
 
  for(int o=0; o<10; o++)
  for (int t=0; t<siz; t++)
   bucket[o][t]=100;
 
 for(int u=0; u<size; u++){
  cifre[1]=a[u]/10;
  cifre[0]=a[u]%10;
  bucket[cifre[h]][u]=a[u];
 }
 for(int k=0; k<10; k++){
  for(int g=0; g<siz; g++)
   if(bucket[k][g]!=100)
    a[k]=bucket[k][g];
 }
 }
}

  int bucket[10][siz];
non solo è una cattiva idea abusare dello stack, ma non si possono (non 
ancora) usare valori non static const per dimensionare un array. Che ti 
funzioni in DevC++ è un'eccezione fortuita, non la regola
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.4. C, C++ and ASM developers
                               and beta testers are welcome!
Newsgroup: it.comp.lang.c++
Titolo: magheggio con stringhe

esiste un modo piu' rapido di questo per poter avere uno stream in output 
con nome definito da una define e estensione ".myext"
#define PROTOCOL_NAME "nomedelprotocollo"
...
...
char *filename_ctrl = new char[256];
strcpy(filename_ctrl , PROTOCOL_NAME );
strcat(filename_ctrl , ".myext" );
ofstream *ofs = new ofstream( filename_ctrl );
(P.S. la #define deve rimanere)
a me non viene in mente nient'altro di piů rapido ma sono sicuro che c'č.
ciao e grazie.
(in un altro linguaggio magari avrei fatto)
ofstream *of = new ofstream( PROTOCOL_NAME + ".myext" );
a me non serve tenere il nome del file completo
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

 ofstream *ofs = new ofstream( filename_ctrl );
 std::string   filename_ctrl ( PROTOCOL_NAME );
 filename_ctrl +=  ".myext";
 std::ofstream ofs( filename_ctrl.c_str() );
MM

 ofstream *of = new ofstream( PROTOCOL_NAME + ".myext" );
Qualcosa del genere?
#define <string>
std::ofstream *of = new std::ofstream( ( std::string( PROTOCOL_NAME ) +
std::string( ".myext" ) ).c_str() );
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 Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
-- 


 Ciao e grazie per la dritta.
Prego.


 
Tutto dipende da cosa intendeva l'OP con "più rapido". Se si riferiva
all'efficienza, beh, il codice qui sopra comporta l'istanziazione di
almeno 3 (e quasi sicuramente 4) oggetti std::string (mentre nella mia ce
n'era uno solo).
Suggerisco una variante più efficiente (anche se meno leggibile, forse):
 std::ofstream *of = new std::ofstream( 
		( std::string( PROTOCOL_NAME ) += ".myext" ).c_str() 
 );
Max

 n'era uno solo).
Infatti non userei mai una cosa del genere. :-) Era solo per saggiare un
po' cosa l'amico intendesse, appunto, con "più rapido".

Newsgroup: it.comp.lang.c++
Titolo: Class string e info

Salve,
sto cercando documentazione on line sulla classe standard string, qualcosa come i l'elenco
completo dei membri, le funzione che le utilizzano (standard).
Ho gia acquistato il "Thinking in C++ 2nd Edition" e ho tuta la documentazione della SGI
sulle STL, ma non riesco a trovare nulla sulla classe 'string' in particolare.
Grazie e Ciao,
    Massimo.
--
  ____  ____  ____  _  _      ____  _  _  ____
 / ___)| __ \/ ___)/ /| |    / ___)| \| |/ ___) Massimo Gaggero (
m...@crs4.it
)
| (___ |    /\___ \\__  | * | (___ |    |\___ \ Computers & Network Service
 \____)|_|\_\(____/   |_|    \____)|_|\_|(____/ Phone: +39 070 2796 329

 utilizzano (standard).
 
http://www.dinkumware.com/htm_cpl/string2.html
 
http://www.dinkumware.com/htm_cpl/index.html
Max

sulle STL, ma non riesco a trovare nulla sulla classe 'string' in particolare.
Anche qualche esempio su....
http://www.yrl.co.uk/~phil/stl/stl.htmlx
Luc.


Puoi provare l'help in linea (per Win32) della libreria
della Roglue Wave sul sito della Borland.
Manlio Perillo

 completo dei membri, le funzione che le utilizzano (standard).
Su 
www.borland.com
 trovi un file HLP abbastanza completo sulla libreria
standard.
EMG

 EMG
Grazie a tutti per i consigli!

Newsgroup: it.comp.lang.c++
Titolo: AAA Visual C++ per Win 3.11

Cerco disperatamente la versione del Visual C++ (ver 2.0 ??) per Windows
3.11: c'è qualcuno che mi può aiutare? Devo far girare un codice scritto
sotto quell'ambiente, ma con la mia versione 6.0 mi dà sempre un errore sui
puntatori in memoria. Ringrazio chiunque si faccia vivo.
cab...@officinaweb.it

 wrote in message
news:93785737...@vega.sirius.pisa.it...

L'ultima versione di VC che produce programmi a 16bit e' la 1.52.
Difficile aiutarti senza dovertene fornire una copia...e questo, purtroppo,
non e' ammesso.
Spiacente.
MM

 sui
 > puntatori in memoria. Ringrazio chiunque si faccia vivo.
Tempo fa in libreria c'era un libro che regalava la versione 1.0
Il titolo è "Learn Visual C++ Now" della Mondadori
Bruno

Newsgroup: it.comp.lang.c++
Titolo: Visual C++, problemi con ClassView

Sarei molto grato se qualcuno mi potesse aiutare a risolvere il seguente
problema.
Ho installato Microsoft Visual C++ versione 5.0 e per un periodo iniziale il
pacchetto ha funzionato correttamente.
Dopo un periodo di pausa, in cui ho installato altri programmi (ad esempio
ActiveX 5.0),  mi sono però accorto  che la finestra Class View all'interno
del workspace (in cui è indicato l'albero delle classi) di un progetto non
funziona più, cioè non rileva le nuovi classi che eventualmente si
aggiungono, e nemmeno aggiorna la visualizzazione nel caso si eliminano
membri di classi già esistenti.
Ho potuto osservare che il database in cui sono memorizzate tali
informazioni (*.dsw) viene infatti soltanto letto ma non viene mai scritto
(cioè la data dell'ultima modifica rimane fissa).
Ho provato a disinstallare e reinstallare l'intero pacchetto senza però
ottenere nessun risultato.
Qualcuno sa quale è il problema e come risolverlo?

(cioè la data dell'ultima modifica rimane fissa).
il .dsw e' il workspace, non ha nulla a che vedere con il database
delle classi, quest'ultimo e' nel file .ncb
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: Problemi con G++.

Salve a tutti, ho da poco iniziato a programmare con g++ su computer
linux. Avendo però io un pc Windows a casa, mi hanno consigliato di
utilizzare Cygwin che ho trovato e installato correttamente. Ma dove
posso trovare g++ (ed emacs) per poter proseguire a compilare anche da
casa? potreste darmi qualche link dove prenderli? Scusate le banalità
ma come dicevo sono alle prime armi.
Grazie.
Marco.


Se hai installato cygwin dal suo sito, ovvero 
http://sources.redhat.com/cygwin/
trovi tutto nella miriade di package disponibili. Se no, rimuovi il
tuo e reinstalla da li'.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Il VC++ 5 e le nuove toolbar

Ho provato a modificare il codice generato automaticamente dal maghetto e
ho aggiunto alla toolbar della finestra principale lo stile 0x848 per farla
diventare in stile IE 3.x. Il programma funziona, ma i lo stato dei bottoni
non si upgrada finchè non vi passo il mouse sopra.
Come posso fare?
Ciao e grazie
Salvatore

non si upgrada finchč non vi passo il mouse sopra.


Come posso fare?
aspettare che MS si decida ad aggiornare le MFC :) oppure provare la
classe pubblicata su MSJ qualche mese faceva piu' meno quello che
chiedi. Il numero esatto non lo ricordo pero' dovresti trovare delle
indicazioni su 
http://www.microsoft.com/msj
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: due domandine...

Le seguenti linee di codice rappresentano dei metodi di una classe:
// public methods dealing with the DOF at the node
virtual int  getNumberDOF(void) const;
virtual DOF_Group *getDOF_GroupPtr(void);
// public methods for obtaining the nodal coordinates
virtual const Vector &getCrds(void) const;
sono chiaramente funzioni virtulai che eventualmente devono essere
specificate in una eventuale             classe derivata.
Qualcuno può dirmi cosa significa il "const" al termine della prima e della
terza funzione virutuale e il "&" nell'ultima.
grazie
ciao.

 
 
http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.9
  [18.9] What is a "const member function"?
MM

 
Il tipo restituito è un 'const Vector &', ossia un 'riferimento
(reference) a un Vector const'.
MM

forest ha scritto:

Ti faccio prima un esempio più semplice da scrivere :-)
#include <iostream>
using namespace std;
class A
{
        void m ()
                { cout << "A::m()" << endl; }
        void n () const
                { cout << "A::n()" << endl; }
};
Ok? Adesso guarda questa funzione:
void f (A& a)
{
        a.m();
        a.n();
}
Nessuna delle due righe da errore, ovviamente. Adesso guarda queste:
void g (const A& a)
{
        a.m();
        a.n();
}
Nota il fatto che ora a è di tipo *const* A&. Ciò significa che non possimo 
modificare a. Ma cosa vuol dire che non possiamo modificarlo? Significa che 
non possiamo modificare variabili e non possiamo chiamare funzioni non 
const. 
In particolare g() non compila, in quanto m() è una funzione non-const e non 
può essere usata su un oggetto const. Perchè questo? Perchè se m 
modificasse qualche variabile di a, a che servirebbe dichiarare a come 
const? Perciò le funzioni const sono le uniche che possono essere chiamate 
su un oggett costante.
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: dll ActivX

Ciao a tutti,
ho 2 domande da farvi:
1 virisulta che la MS sconsigli di usare le MFC per creare ActivX?
2 è possibile debuggare una dll che si aggancia a un eseguibile del quale
non si hanno i sorgenti? se si come?
Grazie a tutti

 non si hanno i sorgenti? se si come?
in asm ;-) cmq molti debugger se non hanno i loro file di gestione si
rifiutano di debuggarti un eseguibile dasolo.
per riuscire magari a crearti un idea del sorgente puoi provare vari tool di
inversengineering ma su librerie proprietarie sotto licenza e' illegale e
viola il contratto ocio ...
ciao

 ha scritto nel messaggio
news:bg45n5$bvs$1...@news.ngi.it...


 delle dll!
it.comp.programmare.win32
follow up impostato
-- 
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: [Forse OT} chiarimenti su recupero ip remoto.

Ciao a tutti, vorrei creare una specie di chat con vc++ 6 (per me e i mie
amici!) capace di funzionare anche su internet, ora fin quando si tratta di
interfacciare la chat alla rete LAN riesco ancora a muovermi ma il problema
č quando si passa al funzionamento su internet:
i socket da quanto ho capito utilizzano ip fissi, quindi la mia domanda č
come faccio a recuperare da remoto un ip dinamico senza che l'utente debba
immetterlo a mano?Mi spiego meglio come posso fare per far accorgere alla
mia chat che qualcuno su internet si sia collegato, non riesco a pensare ad
una soluzione perciň non ho nemmeno codice da mostrarvi.
Grazie.
Ps se invece di implementare il solito schema server-client come posso fare
in modo di decentralizzare il progetto avendo cosě solo "client" che si
collegano in automatico fra loro, diciamo una specie di chat p2p, esiste
qualche esempio che mi possa aiutare?Sono ben accetti tutti i consigli e le
osservazioni utili allo sviluppo del progetto.


E' difficile rispondere perchè per implementare una cosa del genere si
presume che tu sappia utilizzare le Socket API del tuo OS.
Se così fosse, l'ultimo dei tuoi problemi è quello di ricavare l'IP Address
remoto dalla struct sockaddr_in al momento in cui la richiesta di
connessione è accettata.
Il client può utilizzare IP Address sia fissi che dinamici, non è detto, ma
questo non dovrebbe importare niente a nessuno ai fini di cui la tua
richiesta.
Ti consiglio di esercitarti con applicazioni più piccole e semplici che ti
diano la possibilità di capire come funzionano le Socket API e il Layer
TCP/IP.
Ciao,
FabioMDF
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 richiesta.
Il problema è come faccio da un "client" di chat a fare una richiesta di
connessione verso un altro client di cui non conosco l'indirizzo ip o se
addirittura sia collegato o no?C'è un modo per implementare una ricerca per
risolvere questo problema?
Potrei sfruttare la raggiungibilità di un sito?Se si come potrei fare?


Probabilmente troverai piu' aiuto su it.comp.programmare.win32, 
trattandosi di aspetti di programmazione specifici del sistema 
operativo, mentre su questo canale si dovrebbe parlare di tematiche 
relative allo standard.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003
Newsgroup: it.comp.lang.c++
Titolo: c++ su symbian

Salve,
mi interesserebbe sapere se qualcuno ha mai avuto
esperienze di programamzione su Symbian 
http://www.symbian.com/
Programmare in Java su un nokia 9210 č un disastro..mi chiedevo
se nel linguaggio di base del sistema operativo le cose fossero migliori
Grazie

 ha scritto nel messaggio
news:3Bt5b.81631$sj6.1...@tornado.fastwebnet.it...


Ciao,
si le cose sono migliori. Tutto diventa molto efficente purtroppo
anche molto piu' difficile da programmare...
Symbian C++ non e' esattamente C++, e' un dialetto. Per esempio
non ci sono eccezzioni, RTTI, etc. etc. 
/LR


Newsgroup: it.comp.lang.c++
Titolo: 'inp' & 'outp' in Win con C++Builder 1.0

Con l'IDE Borland C++ Builder 1.0, vorrei realizzare una versione per
Windows di un programma che ho scritto in c per DOS;
questo programma fa uso dei comandi 'outp' e 'inp' per comunicare con la
scheda audio e la porta seriale;
mi farebbe molto comodo poter usare comandi equivalenti a questi anche in
Win: ne esistono di "standard" per Win o devo procurarmi delle librerie ?
In quest' ultimo caso vi sarei grato se mi indicaste dove potrei trovarle.
Grazie,
Raf.

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


lo standard non prevede queste cose perciò sei OT o quasi (difficile dirlo)
cmq non puoi usarle in windows
ciao
Newsgroup: it.comp.lang.c++
Titolo: Elaborare stringhe

Quali sono le equivalenti istruzioni in Visual C++ 6 delle seguenti
istruzioni per elaborazione stringhe??:
LEFT
RIGHT
MID
Istruzioni utilizzate dal VB.
Ciao Massimo.


Se ti riferisci al tipo std::string allora prova il metodo substr().
Altrimenti, se parlavi di semplici array di caratteri, devi per forza
costruirti le funzioni che ti servono utilizzando strcpy(), strlen() e
compagnia.
EMG

Istruzioni utilizzate dal VB.
CString::Left(), CString::Right(), CString::Mid()

Ciao Massimo.
Grazie per i consigli, ho anche trovato questo sito dove vengono
spiegate le funzioni presenti nelle librerie del C.
http://www.cs.bsu.edu/homepages/peb/cplusplus/ansilib.html
Ciao Massimo

CString::Left(), CString::Right(), CString::Mid()
Queste dovrebbero essere funzioni non standard di una qualche classe
delle mfc, se non sbaglio... e quindi utilizzabili solo su VC++ e assolutamente
non portabili.
Paolo
------------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  G: Per concludere, possiamo chiedervi di commentare
     l'attuale panorama informatico?
  I: /* l'attuale panorama informatico */
------------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: FIFA 3 - ITALIA 0

Scusate.
Ma non lo ritengo nemmeno OT.
Non ho parole.
Ciao a tutti.

 Hai ragione, neppure io!!!!!!!!
Newsgroup: it.comp.lang.c++
Titolo: Non ci ho capito niente

Devo fare questo esercizio:
Scrivete un programma completo delle due funzioni alternative indicate
di seguito, ognuna delle quali triplica la variabile count  definita
in main. Confrontate i due tipi di approccio al problema. Le due
funzioni sono:
a)La funzione tripleCallByValue che passa una copia di count in una
chiamata per valore, triplica la copia e restituisce un nuovo valore
b)La funzione tripleByReference che passa count con una chiamata per
riferimento passando come parametro un riferimento e triplica la copia
originale di count tramite l'alias (cioč il riferimento passato come
parametro).
Io non ci ho capito nulla. Che significa triplica la variabile?
In a dovrei passare il valore di una variabile X e poi che dovrei
fare?
In b dovrei passare il riferimento a X passando come parametro un
riferimento? Scusate ma sono duro di comprendonio, non capisco cosa
devo fare, se mi poteste dare una mano cercherň di combinare qualcosa.
Grazie

la butto li x lì
moltiplicare * 3 ?



int tripleCallByValue(int x) {return x * 3;}
void tripleByReference(int& x) {x *= 3;}
int main (int argc,char* argv[]) {
  int variabile;
  cin >> variabile;
  // primo modo di incrementare per 3 la variabile...
  variabile = tripleCallByValue(variabile);
  // secondo modo per incrementare di 3 ..
  tripleByReference(variabile);
}
Ciao
Giampiero

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

dove posso trovare su internet un manuale sul C++ possibilmente in
italiano ma va benissimo anche in inglese?
vi ringrazio molto
per favore rispondetemi anche in e-mail
ciao
sandro

 italiano ma va benissimo anche in inglese?
Ciao Sandro. 
Prova al sito: 
www.mcp.com
e anche a: 
http://www.BruceEckel.com
e qui:
http://www.geocities.com/SiliconValley/Foothills/6336/
A me sono stati di grande aiuto.
Ciao
                                                 Milla

Newsgroup: it.comp.lang.c++
Titolo: Un timer piu' preciso ...

Salve,
    nella mia applicazione (DirectX & MFC) utilizzo il timer standard di
Windows attraverso la Cwnd::SetTimer(). Ora, ho letto che questo timer non
e' particolarmente preciso (la sua risoluzione e' inaffidamile sotto i 50ms)
ma a me serve per calcolare la frequenza di aggiornamento dello schermo (nel
senso di quanti frame di animazione posso produrre al secondo). Qualcuno sa
se e' possibile ottenere un timer piu' preciso? O se ce qualche soluzione
alternativa?
Grazie! ;-)
Mario
--
Posted from [195.60.128.101]
via Mailgate.ORG Server - 
http://www.mailgate.org


-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    




Ok grazie! Appena lo provo vi faccio sapere ... :-)
Ciao.

Newsgroup: it.comp.lang.c++
Titolo: WinSock, consigliatemi un compilatore

Salve ,
avrei bisogno di sapere quale compilatore mi suggerite per il C
devo fare qualche piccolo programmino sotto Windows XP/2000 .
Se magari mi suggerite anche il modo per "iniziare" a programmare le Socket sarebbe fantastico :-)
Ho letto delle funzioni socket sotto Unix ,
molto interessanti .
Ma sotto windows sembra un macello , ho trovato 1 miliardo di pagine Web di documentazione
quando a me serve una reference ed un file da scaricare ed includere .
Dream Machine

dream machine wrote:

Ti consiglio questa guida in formato pdf. Va bene sia per utenti unix che
utenti windows. Ovviamente è in inglese
bgnet.pdf
cercala con google
Newsgroup: it.comp.lang.c++
Titolo: aiuto disperato per una cavolo si stampa in Visual C++!!!!

Ciao,
Sono veramente abbattuto!!!!
Ho fatto un programma in Visual C++ basato su finestre di dialogo, la parte
più grossa l'ho fatta, pensavo di aver passato il peggio ma...
...non riesco a stampare!!!
Nei testi che possiedo non vi sono esempi, esempi non ne ho trovati in
internet, la guida il linea del Visual C++ non la capisco, ovvero giro e
rigiro per l'help per ritrovarmi al punto di partenza senza aver concluso un
bel niente.
E' ormai passato più di un mese da quando mi sono perso nei meandri
dell'help.
Cerco qualsiasi aiuto, esempio o spiegazione significativa, che mi possa
portare a risolvere il mio problema!!!!
Mauro.

 [...]
Prova questo:
static LOGFONT lf;
static HFONT hNFont,hOFont;
void OnFilePrint() 
{
        HDC hDC;
        DOCINFO docInfo;
        LPDEVMODE hdm;
        DEVMODE *dm;            
        int xres,yres;
	char st;
        // si crea il dialogo standard di stampa
        CPrintDialog dialog(FALSE,PD_ALLPAGES | PD_NOPAGENUMS,this);
        // si visualizza
        if (IDOK!=dialog.DoModal()) return;
        // si settano le variabili xres e yres con la risoluzione 
        // scelta per usi futuri
        hDC=dialog.GetPrinterDC();
        hdm=dialog.GetDevMode();
        dm=(DEVMODE *)GlobalLock(hdm);
        xres=dm->dmPrintQuality;
        yres=dm->dmYResolution;
        GlobalUnlock(hdm);
	// Nome del job per la stampante                            
	strcpy(st,"Nome del Job");
 
        docInfo.cbSize = sizeof(DOCINFO);
        docInfo.lpszDocName = st;
        docInfo.lpszOutput = NULL;
        docInfo.lpszDatatype = NULL;
        docInfo.fwType = 0;
        // si fa partire la sessione di stampa
        StartDoc(hDC,&docInfo);
        // si inizializza la pagina
        StartPage(hDC); 
        // qui ci scrivi come sul video ad esempio
        TextOut(hDC,10,10,str,strlen(str));
        [...]
        // si termina la pagina
        EndPage(hDC);
        // si termina la stampa
        EndDoc(hDC);
 
        // si rilascia le risorse
        GlobalFree(hdm);
        DeleteDC(hDC);
}
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |
Newsgroup: it.comp.lang.c++
Titolo: CSemaphore e CList

Ciao a tutti,
avrei un problema con l'uso delle classi CSemaphore e CList di Windows.
Avrei una lista dinamica condivisa tra due processi, entrambi la 
modificano e volevo sapere come facevo a far funzionare il semaforo 
all'interno della lista. Devo derivare il CSemaphore dalla CList o la 
CList dalla CSemaphore?
Grazie in anticipo per la risposta.

 avrei un problema con l'uso delle classi CSemaphore e CList di Windows.
E quindi it.comp.programmare.win32
ciao!
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

Newsgroup: it.comp.lang.c++
Titolo: [Banale] Perche' non mi funziona ?

In C++
// Programmino d'esempio :-)
char risposta[5];
cin >> risposta ;
if (risposta=="quit")
cout << "La tua risposta e' esatta !\n";
Perche se scrivo quit non mi stamapa mai il cout ??
Eppure da un controllo con il debugger risposta è uguale a quit !!!!
Grazie.



non e' quello il modo di confrontare delle stringhe di
caratteri!!
Quello che stai facendo con risposta=="quit" e' confrontare
l'indirizzo del primo carattere di risposta con l'indirizzo
del primo carattere della stringa costante "quit" (che il compilatore
avra' memorizzato da qualche parte.) Ovviamente non saranno MAI uguali.
per confrontare due stringhe (null-terminated) del vecchio C puoi
usare la funzione strcmp oppure usa le stringhe del C++.
ciao,
g.


Grazie.

Mi puoi far eun sempio ?
#include <string>
#include <iostream>
int main()
{ 
    std::string risposta; 
    std::cin >> risposta; 
    if(risposta == "quit")
        std::cout << "quitting" << std::endl;
}
sbi

 Eppure da un controllo con il debugger risposta è uguale a quit !!!!
Ma non si trova allo stesso indirizzo.
        Mauro

 ha scritto nel messaggio
news:873cjj1...@localhost.localdomain...


 ha scritto nel messaggio
news:jp6wa.161740$K35.3...@news2.tin.it...


 esistono
Come tipo nativo no, ma come tipo composito che vien di serie si, alla 
stessa maniera di liste, vettori a dimensione variabile, code, pile, 
etc. :-)
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 Come è possibile ?!?!??!
- il libro e` troppo vecchio, almeno 6-7 anni
oppure
- l'autore non conosce il C++
oppure
- e` un libro sul C, ma per un errore di stampa c'e` scritto C++.
        Mauro

 - e` un libro sul C, ma per un errore di stampa c'e` scritto C++.
LOL
errore di stampa sulla copertina?
Newsgroup: it.comp.lang.c++
Titolo: Scrivere su file

Dove trovo un buon esempio di un programma che scrive qualcosa su un file,
o una guida che mi spiega come farlo?
--------
DevarajA
-------- 

 o una guida che mi spiega come farlo?
Mah, direi che "C++ file tutorial" su google trova un milione e mezzo di 
risultati. Comincia cosi', poi se hai dei dubbi chiedi qui.
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

Newsgroup: it.comp.lang.c++
Titolo: proplemi con fstream

Salve,
tempo fa scrissi un programma che generava vari files mediante oggetti di
tipo fstream. Per inesperienza commisi l'errore di aprire questi files senza
specificare la modalità binaria come avrei dovuto. Apparentemente funzionava
tutto ugualmente poichè i files venivano letti e scritti con gli stessi
criteri e io non mi accorsi quindi dell'errore. Me ne accorgo adesso che ho
l'esigenza di eliminare questo problema. Ho corretto l'errore all'interno
dell'eseguibile ma adesso mi tocca convertire il formato delle migliaia di
files che sono stati generati poichè ovviamente non vengono più letti
correttamente. Naturalmente vorrei farlo in automatico per evitare qualche
settimana di inutile e faticoso lavoro. Il problema è che non ci riesco!
qualcuno di voi sa suggerirmi un artefizio per fare la cosa velocemente o i
criteri con i quali sono stati aggiunti quei bytes non desiderati
all'interno dei files???
Ringrazio chiunque sarà in grado di aiutarmi.

 all'interno dei files???
il problema, di solito, è che i "\n" (ascii 0xA) diventano "\r\n" (ascii
0xD+0xA), o viceversa; se questo è il tuo caso, potresti scrivere un
programmino che scorre il file e reinserisce il carattere mancante (o
elimina quello di troppo).
Se ti serve una mano...
Saluti, julio di egidio
ju...@webzone.it

Newsgroup: it.comp.lang.c++
Titolo: [MI] - PROGRAMMATORE VISUAL C++ 6.0 GRANDE PROGETTO!!!

Grande SPA, cerca per la propria sede di lavoro di USMATE VELATE, un
programmatore full-time interessato all'analisi/sviluppo di un grosso
progetto per il trattamento anti-fumo, già sviluppato in Visual c++, da
analizzare e da sistemare.(In futurò ci sarà la possibilità di
ricrearlo).
Il progetto richiede anche una buona conoscenza di ASSEMBLY e
interfacciamento con periferiche esterne su porte COM e LPT1 e
sopratutto voglia di provare.
Ottima retribuzione commisurata, alle reali capacità del candidato.
Tempo di lavoro : indeterminato
Per qualsiasi informazione mandare un CV al seguente indirizzo:
in...@pyco.it
 oppure per avere un contatto diretto chiamare il n°
02/39101368

 02/39101368
pyco e' la societa' ??? ma perche' non avete messo le info della societa'
??? nome indirizzo ecc ... ???
cmq ora vediamo se mi smentiscono rispondendo almessaggio e chiarendo meglio
il tutto
ciao
Newsgroup: it.comp.lang.c++
Titolo: Libro C

Salve a tutti, io sto frequentando un corso di programmatore di C/C++/VB, il
mio professore mi ha consigliato il libro di C di nome C della McGrowHill.
Che ne dite č buono per iniziare?



Prova "Programmare in C" 
Aitken, Jones della Apogeo, per il C mi sembra il piu' chiaro e ben fatto.
-----------
Muzero
"Lamer ? emacs : vi"
 

sto frequentando un corso di programmatore di C/C++/VB
Non sono un po' troppe cose assieme?
-- 
Marco Barisione (ICQ 84277092)

 Non sono un po' troppe cose assieme?
Se fatti bene si, sono troppi... ma come sappiamo, di solito
C/C++ vuol dire ad esempio 95% C e 5% C++.
E poi visto che c'e' di mezzo VB non sara' C++ ma VC++.....
--
Ciao
Gaetano
--
#exclude <windows>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");

Newsgroup: it.comp.lang.c++
Titolo: Processi figli in Bc++ 5

Ciao a tutti,
è la prima volta che scrivo su questo NG, ma ho esperienze anche su altri.
Spero che anche qui la conversazione sarà piacevole ed "arricchente" come mi
è spesso successo su altri.
Ho un problemino che vorrei proporre:
sto' facendo un programma per una materia (per fortuna fra le ultime)
all'università di Palermo - facoltà di Ing. Informatica - con Borland C++ 5
e mi ritrovo a dover chiamare da alcuni pulsanti dei programmi esterni;
segnatamente un file di help (.chm) ed l'agenda o la rubrica di Outlook.
Ma mentre per le sezioni di Outlook penso di utilizzare puntatori ad
apposite funzioni (ancora da carcare, se sapete quali siano ditemelo!!!!)
tramite il server outlook presente nel Bc++5, per la chiamata al file di
help ho utilizzato: execl ("hh.exe", "hh.exe", "help.chm", null).
Ciò mi permette di far partire il processo figlio con l'Help, ma mi
"ammazza" il processo generante !
Come posso fare per evitare che mi si chiuda il programma mentre leggo
l'Help ?
Sono sicuro che qualcuno di voi potrà aiutarmi.
--
Fabbio
QUESTA MAIL E' PROTETTA ALLA PARTENZA DA NORTON ANTIVIRUS 2002
(sempre aggiornato)

 help ho utilizzato: execl ("hh.exe", "hh.exe", "help.chm", null).
La cosa piu' semplice e' che provi ad utilizzare system() piuttosto che
execl().
 
Ciao,
Nicola

 Nicola
Ciao
Fabbio

 wrote in message
news:jgQ59.58404$n04.1...@twister2.libero.it...

Newsgroup: it.comp.lang.c++
Titolo: Strano problema di linking

Salve,
Abbiamo uno strano problema di linking che si manifesta nel caso piu'
semplice con i file seguenti:
a.cpp::
  #include "a.h"
  a::a() : aaa(0,PERM_NONE) { }
  main () { }
a.h::
  #include <utility>
  class a{
   public:
    typedef int perm;
    static const perm PERM_NONE = 0;
    a();
  private:
    std::pair<int, perm> aaa;
  };
Compilando con  g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) si ottiene il
seguente errore::
  $ g++ a.cpp
  /tmp/ccMGYdOH.o: In function
`a::a[not-in-charge]()':a.cpp:(.text+0xa): undefined reference to
`a::PERM_NONE'
  /tmp/ccMGYdOH.o: In function `a::a[in-charge]()':a.cpp:(.text+0x34):
undefined reference to `a::PERM_NONE'
  collect2: ld returned 1 exit status
Il file compila correttamente con l'opzione -c, ed il problema si
presenta solo in fase di linking.
Qualcuno sa suggerirci una soluzione?
Grazie in anticipo
Arcimboldo

Ciao, prova con questo:
// inizio del codice
a.cpp::
  #include "a.h"
  a::a() : aaa(0,PERM_NONE) { }
  main () { }
a.h::
  #include <utility>
  class a{
   public:
    typedef int perm;
    static const perm PERM_NONE;
    a();
  private:
    std::pair<int, perm> aaa;
  };
const a::perm a::PERM_NONE(0);
// fine del codice
Non so spiegare perchè il compilatore non
emetta un messaggio di errore. (mia gnoranza :-)
Il linker, invece, non trova una locazione di memoria
associata al simbolo a::PERM_NONE, che avrebbe
dovuto essere specficata dopo la dichiarazione della 
classe a.
Ugo

 emetta un messaggio di errore. (mia gnoranza :-)
Perché il compilatore non ha alcuna voglia di rubare il lavoro al 
linker. Il compilatore prepara, mentre il linker assembla. 
L'"istanziazione" può essere presente in qualsiasi file cpp quindi il 
compilatore, compilando un file cpp alla volta, non può (per chiarezza e 
semplicità) eseguire certi controlli. Il linker invece assembla i pezzi 
e quindi si accorge subito se manca qualcosa.
Kiuhnm

Newsgroup: it.comp.lang.c++
Titolo: Aprire due finestre del browser

Come si fa ad aprire 2 url contemporaneamente in due finestre
differenti del browser ? Facendo:
ShellExecute(hwnd,"open", m_strUrl1, NULL, NULL, SW_SHOWMAXIMIZED);
ShellExecute(hwnd,"open", m_strUrl2, NULL, NULL, SW_SHOWMAXIMIZED);
vengono aperti nella stessa finestra uno dopo l'altro. Devo passare un
parametro particolare ?
Grazie in anticipo
--
Mav Rossi

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: [OT] Assenza

Chiedo scusa per i thread in corso a cui ho partecipato negli ultimi
giorni (e per l'OT) ma ... da domani comincia un periodaccio. Se trovo
il tempo continuo, altrimenti rimando (anche di una settimana o piů).
Se trovo POCO tempo, rispondo solo a post a cui posso rispondere in
pochi secondi, e rimando quelli piů lunghi a piů avanti.
--
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

 pochi secondi, e rimando quelli più lunghi a più avanti.
Faccia con comodo, dott. Ferro...
8)
-- 
Luc.

Newsgroup: it.comp.lang.c++
Titolo: *** Ricerca funzione ***

Buongiorno a tutti.
Esiste una funzione che mi crei un elenco
di tutte le subdirectory (e le subdirectory in esse contenute, fino 
all'ultimo livello) di una unità per W95 ?
Intanto grazie.
 
Milla

Ciao Milla,
non ho mai visto una funzione del genere, quello che ti posso
dire e che anch'io ho incontrato questo problema un po' di tempo fa,
ed ho risolto con una funzione ricorsiva, la quale utilizzava
FindFirstFileEx() e FindNextFile() al suo interno.
ciao, Franco.
Franco Torrini - Software Engineer - 
f.to...@virtuart.it
VIRTUART - C.C.D. Creative Computer Design S.p.A.
Via di Quarto Annunziata, 80/b - 00189 Rome, Italy
Tel. 
+39 06 33076638
 - Fax. 
+39 06 33076670
Web: 
http://www.virtuart.it


 FindFirstFileEx() e FindNextFile() al suo interno.
Qui c'e` una FAQ di ALex Martelli che puo` essere di aiuto:
http://space.tin.it/computer/rgerola/faq/5_3.htm
-- 
Roberto Gerola
Email: 
roge...@tin.it
WWW: 
http://space.tin.it/computer/rgerola
Newsgroup: it.comp.lang.c++
Titolo: Intersezione di oggetti in Windows.

Intersezione di oggetti in Windows.
Salve.Ho da proporre il seguente problema:
Supponendo di avere degli oggetti  linea disegnati in una finestra di
una applicazione Windows, mi serve  determinare se il cursore del
mouse (un mirino come in Autocad) interseca un oggetto,  e se si
quale.
La soluzione matematica di controllare per ciascuna retta, (che
possono essere in numero molto elevato) se le coordinate del puntatore
del mouse appartengono ad una di esse, e' da scartare in quanto
comporta il ricalcolo completo per ogni microscopico movimento del
mouse, che blocca di fatto l'applicazione.
Qualcuno e' in grado di suggerirmi qualcosa? Per la cronaca
l'applicazione e' in Visual C++, ma a me basta soltanto un'idea sul
metodo da seguire.
Grazie a tutti.
Renato 
eLIMINARE IL SEGNO$ DALL'INDIRIZZO E-MAIL

quale.
[omissis]
Ho dovuto affrontare tale problema in passato, durante la realizzazione
di un programma di drawing. La soluzione che ho adottato consisteva
nell'associare a ciascun oggetto (linea o superfice) una regione.
Per determinare se il mouse stava sopra un oggetto mi bastava verificare
se il punto in cui si trovava il puntatore del mouse apparteneva ad una
di queste regioni (tramite api windows).
Le prestazioni erano ottime, il peso computazionale viene
spostato sostanzialmente al momento in cui si calcola la regione relativa
all'oggetto, ma tale operazione veniva condotta molto raramente (nella
maggio parte dei casi una sola volta) e comunque pesava solo in
situazioni molto particolari (in cui durava al piu` qualche istante).
Per il calcolo della regione (nel caso di linee) il procedimento che adottavo
consisteva nel determinare i vertici di un quadrato intorno a ciascun vertice
della linea. I vertici dei quadrati venivano quindi utilizzati per determinare un
poligono al cui interno cadeva la linea.
Probabilmente esistono soluzioni migliori, tuttavia io non ne conosco altre.
Saluti,
Paolo
----------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
----------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Non riesco a registrare un activex

Sto cercando di registrare un activex trovato su internet (BCGDateTime.ocx).
Seguendo le istruzioni devo una volta copiato su disco, posizionarmi nella
directory e usare:
regsvr32 BCGDateTime.ocx
Purtroppo l'esito di questa operazione č:
"LoadLibrary("BCGDateTime.ocx") failed.
GetLastError returns 0x0000000b6.
Cosa sto sbagliando ??
Grazie
Pierluigi

 wrote in message
7qgseg$9pf$1...@unlisys.unlisys.net...

Newsgroup: it.comp.lang.c++
Titolo: posizionamento direttiva include

Ciao a tutti! :-)
Mi è stata posta una domanda interessante: si possono effettuare
inclusioni di file dove si vuole? (ad es. in un ciclo for, all'interno
di una funzione, nel codice di una classe...)
Se NO: dove è consentito usare la direttiva di include?
Sinceramente, mai posto il problema perchè la programmazione modulare
alla fine ti porta in ogni caso a sviluppare determinate architetture
nei programmi. Tuttavia è una curiosità teorica: non sono riuscito a
trovare nulla di abbastanza esplicito ed inequivocabile a riguardo...
Usando il DEV-C++ (basato sul compilatore Mingw, porting dell'ambiente
GCC in windows) la cosa è possibile, ma non so se sia standard (sotto
gcc non ho ancora provato: mea culpa).
Vi ringrazio!

 Se NO: dove è consentito usare la direttiva di include?
Le direttive include possono essere messe in qualunque punto di un file 
sorgente.
Ciao,
Nicola


Ma l'inclusione č precendente o seguente?
Anche se forse mi rispondo da solo... #include č del preprocessore, quindi
dovrebbe il file viene incluso prima della compilazione...esatto?
In ogni caso mi spiego se io faccio...
<CODE>
if(cond==true){
    #include "file.cpp"
}
</CODE>
La domanda č: file.cpp viene incluso se cond č vera o in ogni caso? (credo
che la questione si possa porre, per chi lo conosce, cosě: #include si
comporta come in ASP?)
Certo che un labirinto č piů chiaro di me...cercatemi comunque di
rispondermi...please!
    Shogun

 La domanda è: file.cpp viene incluso se cond è vera o in ogni caso?
In ogni caso.
*** Azimuth ***

 </CODE>
Attento.
Stai mischiando la logica del programma con quella del
preprocessore.
Il preprocessore mette a disposizione alcuni meccanismi per
la compilazione condizionale.
ad esempio
==============
#define OPT 2
#if OPT==1
#include "header1.h"
#elif OPT==2
#include "header2.h"
#else
#include "header3.h"
#endif
==============
questo include "header2.h"
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: MFC e Registro di Windows

Salve a tutti
Come posso, utilizzando le MFC, accedere al registro di Windows per creare
voci, leggerle e modificarle ?
Vi ringrazio per l'attenzione
Saluti
Damianň

 voci, leggerle e modificarle ?
E` una domanda specifica della programmazione per Win32,
quindi, per favore, postala sul gruppo dedicato a questo tema
(it.comp.programmare.win32), non su questo, che e` invece
dedicato all'uso del C++ indipendentemente dalla piattaforma.
Saro` felice di aiutarti se posti sul newsgroup adatto.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Array di numeri casuali

Salve a tutti,
sto sviluppando un semplice giochino, ma per farlo ho bisogno che venga
prodotto un array di numeri casuali. Inserendo nel programma il codice:
  srand( (unsigned)time( NULL ) );
  for(int t=0;t<5;t++)
    {
      *(caso+t)=rand() % 1000;
      cout<<*(caso+t)<<endl;
    }
Per il compilatore  va tutto bene, ma in esecuzione mi dà un segmentation
fault, sia che l'array venga acceduto con subscripting che con aritmetica
dei puntatori. Qualcuno ha qualche idea per ovviare a questo inconveniente?
Faccio notare che la funzione rand() (che dovrebbe essere inclusa nella
libreria time mi pare...) l'ho semplicemente trovata su un altro programma e
copiata qua, non lapidatemi se ho scritto qualche cacchiatina :-P
Grazie a tutti
Andrea

 dei puntatori.
A cosa punta 'caso'?
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Tanto per rispondere, 'caso' punta a int caso[5]... cmq vi chiedo scusa, il
problema era un altro, in una decina di righe di programma non ho riportato
l'unica errata.
Un errore banale corretto con un po' di attenzione. Grazie comunque.
Andrea


Newsgroup: it.comp.lang.c++
Titolo: Come leggere buffer porta seriale ?!?

Ciao,
    come da object vorrei chiedere se qualcono conosce il modo per leggere,
con visual C++, il buffer riservato alla porta seriale, o meglio se e'
possibile conoscere il numero di byte presenti in esso.
Devo realizzare un programma che usa tale porta per controllare una scheda
esterna, che ad ogni comando risponde con due byte, quindi prima di iniziare
la comunicazione svuoto il buffer e invio il comando, pero devo essere
sicuro che come ritorno ho solo due byte, ne uno di piu ne uno di meno
(anche perche' ho visto che il mio prg si blocca, problema parzialmente
risolto con il timeout).
Quindi ogni consiglio e' ben accetto.
La mia E-Mail: 
Kae...@tin.it
Ringrazio anticipatamente,
            Luca.

risolto con il timeout).
Se hai problemi di sincronizzazione usa un thread separato per la gestione
dell'I/O da e per la seriale.
Apri la comunicazione in modalita' overlapped e regola al meglio i timeout
di comunicazione rispetto alla velocita' di comunicazione che usi con la
scheda.
Newsgroup: it.comp.lang.c++
Titolo: [?] creare una proprietà array

Salve a tutti.
Sto sviluppando un controllo ocx e vorrei creare una proprietŕ-array cioč
che abbia la forma di una matrice. E' possibile? Se sě, come?
Grazie in anticipo.
Ciao,
        Salvo

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

  Nicola Musatti
*PLONK*

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

Ho installato tale libreria sotto W2000 con VC++, ma quando vado a scrivere
un programma per sfruttarla il compilatore mi dice:
E:\HD H\wxWindows prove\Hello.cpp(4) : fatal error C1083: Cannot open
include file: 'wx/wxprec.h': No such file or directory
Error executing cl.exe.
l'intestazione che io do ai miei programmi è:
#include "wx/wxprec.h"
#ifdef __BORLANDC__
 #pragma hdrstop
#endif
#ifndef WX_PRECOMP
 #include "wx/wx.h"
#endif
qualcuno sa dirmi dove sbaglio?
Grazie.

#include "wx/wxprec.h"
L'inclusione di un file tra virgolette si riferisce alla directory
corrente ed eventuali sottodirectory .
In questo caso per funzionare corretamente la directory wx dovrebbe
essere una sottodirectory di quella corrente .
Se invece wx si trova sotto la directory di inclusione del compilatore
allora devi usare le parentesi angolari .

 #include "wx/wxprec.h"
E' possibile che il tuo compilatore richieda la notazione
#include <wx/wxprec.h>
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: BC++ 5.0 mi si incarta !!

Ciao,
ho un fastidioso problemino col Borland C++ 5.0: quando uso resource
workshop il programma termina indecorosamente nel 90% dei casi col famoso
messaggio d'errore: "Questo programma ha eseguito un operazione non valida
ecc..." !!! Da cosa dipende? E' la seconda volta che installo il tutto e
c'è sempre lo stesso problema!
Grazie,
xtian



Aggiorna il compilatore alla versione 5.02, molto piu' stabile
rispetto alla 5.00.
Comunque nel sito di Inprise (
http://www.inprise.com
), vi sono le
patch per tutte le versione del Borland C++.
Bye.
Jo Parrello - OWL/C++ Programmer
http://www.geocities.com/SiliconValley/Hills/8145
(
jopar...@geocities.com
)
Newsgroup: it.comp.lang.c++
Titolo: Collisione ereditarieta' multipla

Ciao!
Problema: devo ereditare da due classi, ma entrambe hanno un metodo
con due return type diversi. Devo fare l'override di uno di essi, ma
il compilatore (VC++) si arrabbia. In codice:
class B1 {
//...
public:
	virtual void Run();
};
class B2 {
//...
public:
	virtual int Run();
};
class D : private B1, private B2 {
//...
public:
	virtual void Run(); // voglio fare l'override di B1::Run()
};
Errore: overriding virtual function differs form B2::Run only by
return type
Ho pensato che una soluzione potrebbe essere incorporare l'oggetto B2
come data member, cosa dite?
Grazie, Giulio
Please strip ".removeMe" to reply by email


Che compilatore hai usato?
Non vorrei sbagliare ma credo che il tuo codice sia corretto.
Manlio Perillo

 Non vorrei sbagliare ma credo che il tuo codice sia corretto.
Eppure né il BCC55 né il DJGPP lo compilano...
EMG

Manlio Perillo
Relativamente alle funzioni virtuali lo standard (a dire il
vero il draft, paragrafo 10.3[5]) cita qualcosa tipo:
   struct Base {
      virtual void vf();
   };
   struct Derived : public Base {
      char vf(); // error: invalid difference in return type only
   };
VC++ e BCC55 si comportano correttamente segnalando l'errore;
g++ compila ma si tratta di un bug o di una una estensione
non standard del linguaggio.
(a meno che questa sia una delle cose cambiata fra il draft
 e lo standard, non ho comprato lo standard e non posso
 verificare)
Per capire il problema considera il programma errato ma
accettato da g++:
///////////////////////////
#include <iostream>
class B1 {
  //...
  public:
    virtual void Run() { std::cout << "B1::Run()\n"; }
};
class B2 {
  //...
  public:
    virtual int Run() { std::cout << "B2::Run()\n"; return 0; }
};
class D : public B1, public B2
{
  //...
  public:
    virtual void Run() // voglio fare l'override di B1::Run()
    {
      std::cout << "D::Run()\n";
    }
};
int main()
{
  B1 *b1=new D; b1->Run();
  B2 *b2=new D; int result = b2->Run();
  D  *d=new  D; d->Run();
  std::cout << "Result = " << result << std::endl;
  return 0;
}
///////////////////////////
L'esecuzione genera
D::Run()
D::Run()
D::Run()
Result = 134520576 
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 [snip]
Per il  problema di Giulio in effetti c'è una soluzione abbastanza generale.
class B1 {
//...
public:
virtual void Run();
};
class B2 {
//...
public:
virtual int Run();
};
A questo punto basta definire delle interfacce a B1 e B2:
class D_B1: public B1
{
    virtual void B1_Run()  = 0;
    void Run() { /*return*/ B1_Run(); }        // override B1::Run
};
Quello che fa D_B1 è semplicemente definire un alias per B1::Run
Lo stesso per B2
class D_B2: public B2
{
     virtual int B2_Run() = 0;
     int Run() { return B2_Run(); }
};
A questo punto, finalmente:
class D : private D_B1, private D_B2
{
   //...
   public:
      virtual void B1_Run();    // fa indirettamente l'override di B1::Run
};
Nota: ovviamente Giulio non ha bisogno di introdurre D_B2 se non ha intenzione
di fare l'override di B2::Run.
Basta che faccia
class B: private D_B1, private B2 { // ... }
Manlio Perillo