mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Help x Visual C!

Ciao a tutti!
Volevo sapere se, una volta creato un eseguile con il visual C, mi
bastava portare su un altro computer solo l'eseguibile, o se c'è
bisogno anche di qualche altra libreria! Fino ad ora ho provato gli
eseguibili solo su altri computer che avevano il VC installato, quindi
non so se al momento del lancio del programma andava a leggersi
qualche libreria o dll, o se funzionava da solo!
Grazie in anticipo!

 Grazie in anticipo!
dipende dalle opzioni che gli dai:
premi alt-f7....
se compili come shared dll ti devi portare dietro la relativa dll...
se compili static non hai bisogno di nessuna dll......
cmq questo č valido se usi controlli standard

Puň essere conveniente creare il progetto con la DLL (eseguibili di debug molto
piů piccoli) e produrre la versione Relase con la LIB (eseguibile
autosufficiente).  Basta che in Project > Settings > C/C++ > Project options
della configurazione Release sostituisca /MD con /MT ed elimini /D "_AFXDLL".
Gli eseguibili con .LIB sono circa il doppio di quelli con .DLL ma non
richiedono altro per funzionare. 
-------------------------------------------------
Programmare in C< con WinDOS 1.0 (freeware)
Invio su richiesta, 642 K attaccati ad un e-mail.
-------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: salvare indirizzo restituito

Ciao a tutti,
ho un metodo in una classe che restituisce un puntaotre ad un tipo 
struct dichiarato privato nella classe.
E' possibile salvare quell'indirizzo in una variabile del main non 
potendo utilizzare il tipo struct definito nella classe?
Esempio
class Albero{
private:
   Struct Nodo{
   ...
   ...
   }
public:
   Nodo *metodo();
};
main()
{
//Non posso diachiarare un puntatore al tipo Nodo :(
//e di conseguenza non posso salvare quello che restituisce metodo();
}
grazie per l'attenzione

Una domanda...
Ma se ti interessa sapere quello che ti restituisce nodo, perché lo tieni come privato?!
Cmq, hai provato con un puntatore a void?!
-- 
Hyde 
------------------------------------------------------------------------
View this thread: 
http://www.itsistemi.net/viewtopic-723701.html
Inviato via 
http://www.itsistemi.net

Non è molto chiaro.
La dichiarazione pubilc
Nodo *metodo() viene accettata dal compilatore ?
Se si l'indirizzo doversti beccarlo nel main con
void * p;
p= (void *) metodo();
-- 
giove
------------------------------------------------------------------------
Visualizza questa discussione: 
http://www.freenfo.net/usenet/thread574053.html
Profilo di giove: 
http://www.freenfo.net/usenet/member.php?userid=137

 
Grazie mille a te ed a Hyde che mi aveta aiutato a risolvere questo 
problema.
Forse non sara' il metodo piu' elegante ma funge.

 
Domanda siccome un puntatore a void dovrebbe accetare qualunque altro 
tipo di puntatore, forse
p= (void *) metodo();
e' sovrabbondante?
cosi' ad occhio
p= metodo()
non dovrebbe dar adito ne ad errori ne a warnings.
Cosa ne pensate, sono in errore?
Newsgroup: it.comp.lang.c++
Titolo: urge consulenza e manuali

Scusate il disturbo ma per caso mi hanno regalato microsoft visual studio 6
di cui fa parte il visual c ++ purtroppo la guida per il C++  è
completamente in inglese e io sono piuttosto a disagio con questa lingua .
E mentre me la cavo benino con visual basic non ci capisco un accidente di
C++ e siccome mi piacerebbe imparare questo linguaggio di programmazione
chiedo umilmente aiuto .....  vorrei sapere quali sono dei buoni manuali  o
libri introduttivi all'argomento .
Grazie anche prima della risposta .

libri introduttivi all'argomento
Leggi le faq su 
http://cpp.programmazione.it
-- 
Marco Barisione (ICQ 84277092)

 ha scritto nel messaggio
news:e7387u40i0o6ggkkv...@4ax.com...


Newsgroup: it.comp.lang.c++
Titolo: Classi per gestore di container di immagini  (lungo)

Mi sono recentemente trovato ad affrontare
il problema della gestione di un container
di immagini.
In particolare il file contiene un header,
più dei contenitori di tag.
Mi chiedevo come si gestisce di solito
in lettura e soprattutto in scrittura
una cosa del genere.
Io ho ipotizzato una classe Handler che
contiene un metodo per caricare e uno per
salvare (per ora sono al caricare).
Il sopracitato metodo alloca un oggetto
per contenitore che contiene un array
di oggetti tag.
Prima domanda: il caricamento dei campi da file
lo delego all'ultimo oggetto (tag) o è preferibile
tenere un solo puntatore a file nella classe
handler?
In teoria quindi mettiamo che ottengo il mio container
di array di tag, di solito i valori dei tag sono puntatori
all'interno del file (puntatore all'inizio dei byte
dell'immagine per esempio).
Quindi pensavo che il metodo che carica deve
in qualche modo gestire anche questi caso,
ovvero interpretare il valore del tag in base al
tag stesso. E' un giusto approccio?
E dato che il numero di valori è fisso, in base
al tag, di solito si usa un immenso switchone?
Per ora i dubbi sono questi.
Grazie per le risposte.

Forse non ho capito io,
allora riassumendo :
- Hai un file che contiene un header e dei contenitori di tag ....
-> ma che intendi per contenitori di tag ? qualcosa tipo un file xml ?
e le informazioni sull'immagine dove sono ?
per darti un consiglio devo capire bene cosa intendi ... scusami
spiegati meglio.
Kap ha scritto:


 
Si scusa, in pratica di solito i tag di questi container
sono fatti in modo da dirti nometag + tipodidato + puntatoreadato
come prima cosa.
Il puntatore al dato č a partire dall'inizio del file
verso un qualsiasi punto, cosě da avere un prima parte
"compatta" e poi i byte dell'immagine (o delle immagini
se divise in strip o se piů di una), tutti contigui dopo.
Quindi tu ti carichi l'offset e poi lo gestisci.
Un esempio č lo standard Tiff.
Newsgroup: it.comp.lang.c++
Titolo: Vector e Iteratori

Salve,
Volevo sapere se qualcuno sa risolvere questo problema:
come posso copiare tutti i valori che leggo con un istream_iterator in 
un vector senza sapere il numero di elementi?
Spero di essere stato chiaro
Ciao a tutti
Alex

 ha scritto nel messaggio
news:1OZXc.69272$OH4.1...@twister1.libero.it...

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main()
{
        vector<int> v;
        istream_iterator<int> init(cin), end;
        copy(init,end,back_inserter(v));
        cout << "Hai inserito " << v.size() << " elementi...\n";
        copy(v.begin(),v.end(),ostream_iterator<int>(cout, "\n"));
        return 0;
}

Paolo Ferraresi wrote:

Grazie mille č proprio quello che mi serviva
Alex

Newsgroup: it.comp.lang.c++
Titolo: chiudere una applicazione

> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< 
DucaCr...@iol.it
 >>>>>>>>>>>>>>
*** Il sesso senza amore e' un'esperienza vuota,
*** ma fra le esperienze vuote e' una delle migliori!
                                              (Woody Allen)


Prova con inviando un WM_QUIT, dovrebbe forzare la terminazione del loop dei
messaggi.
Altrimenti devi ricavarti un handle con diritti sufficienti (in NT) e
richiamare una TerminateProcess (questo è, di gran lunga, l'approccio più
brutale e rischia di lasciare allocate delle risorse, soprattuto in '95/8).
---
Valter Minute
min...@fortech.it
 (the reply address of this message is invalid)
---
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://hotfiles.zdnet.com/cgi-bin/texis/swlib/hotfiles/getit.bin?fcode=000PZ
0
if you want, I can send you the (free) C++ source code.
Newsgroup: it.comp.lang.c++
Titolo: Bitmap con MFC...

Il mio problema è il seguente: dovrei caricare da un file .bmp
un'immagine e disegnarla su un dialog (in uno spazio più piccolo di
quello dell'immagine). Uso MFC ed ho provato in diversi modi.
Purtroppo non capisco l'uso dei CDC (o DC?! bah!) e non sono arrivato
ad alcun risultato. 
Se qualcuno potesse fornirmi uno spezzone di codice che faccia ciò che
chiedo sarebbe meglio, perchè con le spiegazioni che mi hanno fornito
finora non sono arrivato a niente (a causa della mia scarsa
preparazione sulla programmazione Windows.)
GRAZIE.

preparazione sulla programmazione Windows.)
Certo.  Parti dall'"esempio di minima di applicazione Windows con
un messaggio e un bottone" che ho postato l'altro giorno, nella
versione MFC beninteso.  Aggiungi alla classe MyWin i membri:
    HBITMAP hbm;
    BOOL LoadImage(const char* filename);
e l'implementazione di quest'ultimo:
BOOL MyWin::LoadImage(const char* filename)
{
    hbm = (HBITMAP)::LoadImage(0, filename, IMAGE_BITMAP,
        0, 0, LR_LOADFROMFILE);
    return hbm!=0;
}
OK fin qua?  OK, adesso nella InitInstance dell'applicazione,
prima dell'UpdateWindow/ShowWindow, aggiungi le righe:
    if(!pW->LoadImage("Pippo.Bmp")) {
        char pip[80];
        wsprintf(pip,"Errore=%d caricando Pippo.Bmp",
            GetLastError());
        AfxMessageBox(pip);
        return 0;
    }
Infine aggiungi un file bitmap Pippo.Bmp al directory dell'applicazione.
Adesso, ci manca solo una cosa: aggiornare OnPaint in
modo da dipingere anche la nostra bitmap!  Ebbene, non
ci vuole molto (...facciamo anche una "finezza", va...):
void MyWin::OnPaint()
{
    CPaintDC paint(this);
    paint.TextOut(10, 50, "Messaggio");
    if(hbm != 0) {
        CDC memDc;
        memDc.CreateCompatibleDC(&paint);
        memDc.SelectObject(CBitmap::FromHandle(hbm));
        paint.SetStretchBltMode(HALFTONE);
        ::SetBrushOrgEx(paint, 0, 0, 0);
        paint.StretchBlt(10, 70, 30, 30, &memDc, 0, 0,
            48, 48, SRCCOPY);
    }
}
La "finezza" e` la richiesta dell'halftoning per lo
stretching, che dev'essere seguita (su W95/W98,
solamente; su NT non importa) dal settaggio della
origine del Brush, per ragioni assai oscure.  E`
abbastanza probabile che l'halftoning non ti serva,
nel qual caso puoi sicuramente avere migliori
prestazioni evitandolo (ma la "compressione" visiva
di bitmap spesso presenta effetti ottici pessimi,
per cui non e` male sapere come fare a provare
tutte le varie opzioni possibili...).
Se ancora la cosa non ti funziona, facci sapere, con
qualche dettaglio sui problemi che ti presenta (sul
gruppo, per favore, NON in mail come tanti hanno
preso a fare per chiedermi aiuti vari -- la mia mailbox
e` gia` sin troppo piena di suo!!!).
Alex
Newsgroup: it.comp.lang.c++
Titolo: dov'è l'errore?

sto cercando di fare un programma che mi permetta di calcolare la media
di un numero indefinito di numeri. finchè non immetto il valore 9999.
il valore 9999 però è solo un valore sentinella e non dovrebbe essere
calcolato per fare la media, come invece fa il programma che ho fatto.
Qualcuno sa dirmi cosa c'è di sbagliato?
#include <stdio.h>
#include <stdlib.h>
main()
{
int num, media, counter, total;
counter = 0;
total = 0;
while (num != 9999){
printf("immettere un numero\n");
scanf("%d", &num);
counter++;
total = total + num;
}
media = total /counter;
printf("la media dei voti messi è: %d",media);
system("pause");
return 0;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 }
questo ciclo infatti controlla che la variabile 'num' sia diversa dal numero
9999 ed in questo caso esegue il blocco di codice che somma i valori. Il
problema sta nel fatto che il valore da assegnare alla variabile 'num' lo
leggi nel ciclo e quindi quando inserisci il 'numero magico' 9999 sei sulla
'scanf', il numero poi viene sommato al totale e solo dopo la condizione del
while diviene falsa...
Adotta un altro tipo di ciclo o inserisci un controllo 'if' subito sotto la
'scanf', cosě:
while (num != 9999)
{
    printf("immettere un numero\n");
    scanf("%d", &num);
    if (num != 9999)
    {
        counter++;
        total = total + num;
    }
}
Ciao.

 while diviene falsa...
Esatto.!!! Inoltre c'č un errore ben piů grave che in genere per i
principianti č difficile da rilevare, percui te lo faccio notare io: Tu nel
tuo ciclo verifichi la condizione num!=9999. MA quanto vale num? num ha un
valore CASUALE!!!! Infatti quando credi la variabile num, non la inizializzi
a nessun valore, ne ci fai un assegnamento. Percui, potrebbe avvenire anche
che casualmente num abbia il valore 9999 e il ciclo non verrebbe mai
eseguito!!!

 principianti è difficile da rilevare, percui te lo faccio notare io: Tu


 ha scritto nel messaggio
news:ovMb8.8891$8F6.4...@twister2.libero.it...


 Ciao.
mantenendo la tua struttura, puo' usare:
while ( (scanf("%d", &num) ) && (num != 9999))
{
     ...
}
--
Ciao by Allanon
Newsgroup: it.comp.lang.c++
Titolo: Dal motore 3d al Monopoli

Amici salve,
ho deciso di optare x il monopoli (ricordate l'email del "motore di redering
tridimensionale e il monopoli - 02/11/2003"?!).
Qualcuno ha qualche sito da darmi x avere un sorgente di monopoli in C++ e
incominciare ?
Grazie a tutti anticipatamente!
:)

 incominciare ?
Che esame e'? Cercacongoogleologia?
Ciao,
Nicola

"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio
news:a327cf48.03110...@posting.google.com...

Cercato ... nulla :(

 Cercato ... nulla :(
Allora è bene che cominci a ragionare con la tua testa e a pensare a un
modello adeguato...

 ha scritto nel messaggio
news:bogm7n$a5l$1...@lacerta.tiscalinet.it...

Ciao Paolo,
la mia testa funziona .... so anche come implemetarlo MA NON CONOSCO LE
SPECIFICHE DEL COMPILATORE  per la gestione  della grafica!
Quindi se hai consigli in merito esprimiti pure ...

 Quindi se hai consigli in merito esprimiti pure ...
Se allora il problema è l'interfaccia, è bene che tu sappia che il C++
standard non conosce grafica!
Esclusivamente con il C++ puoi farti un monopoli testuale... che non è
proprio il massimo...
Non t'interessano le specifiche del compilatore. Il compilatore basta che
sia più o meno standard, come il gcc, ad esempio.
A questo punto hai più strade... o ti appoggi alle API del tuo S.O. per la
grafica (strada lunga, tortuosa e piena di difficoltà) oppure ti rivolgi ad
un framework per la GUI (es wxWindows o GTK)... Esistono soluzioni integrate
tipo VC++ e MFC oppure Borland C++ Builder e VCL/CLX ma se fossi un
insegnate preferirei qualcosa di non commerciale...
Dipende comunque da quali vincoli hai (se ne hai) sul programma che devi
sviluppare.
Es.
1) Linguaggio C++ (STL si / STL no ?)
2) S.O. ?
3) Grafica con API (es. GDI per Windows, o X)? Con Framework (wxWindows,
GTK, OWL,VCL, CLX, MFC, etc. )? OpenGL / GLUT ?
Che vincoli hai?
Se non ne hai potresti anche usareil borland c++ builder e creare
l'interfaccia con il mouse, ad esempio...
Se il problema è l'interfaccia comunque non c'entra niente con il C++
standard e le scelte dipendono dai vincoli che potresti avere (imposti
magari dal professore) o dai tuoi gusti personali!
Ciao,
F.P.
Newsgroup: it.comp.lang.c++
Titolo: vcfi32.ocx

Ciao a tutti.Ho il seguente problema....devo installare un ocx per creare
grafici,che normalmente il c++ builder 6.0 installa e registra nella fase di
installazione.
La mia necessita' e quella di registare questo ocx su un altro pc,ove pero'
non dispongo del c++builder.
E QUI NASCONO I GUAI!Io registro l'ocx con la procedura regsvr32.exe
C:\WINDOWS\system32\vcfi32.ocx,ma mi da errore.
In pratica ho scoperto che se installo prima il c++ builder funzione,cioe'
il c++ builder registra correttamente l'ocx,magari con dei file delle
dipendenze o cose varie!
La mia domanda e':qualcuno conosce questi file delle dipendenze,o qualcosa
del gnere che il l'IDE in questione usa per registrare l'ocx?
Oppure in modo piu' semplice e comprensibile,qualcuno sa dirmi come
registrare l'ocx?(vcfi32.ocx)

pippo ha scritto:

Non lo so, ma dubito che riceverai risposte qui, in quanto l'argomento 
e' OT. Cerca un gruppo piu' adatto.
  bye
	av.

 ha scritto nel messaggio
news:08z1j.177060$%k.31...@twister2.libero.it...


Newsgroup: it.comp.lang.c++
Titolo: ActiveX con C++

So programmare abbastanza bene in C e iniziato da poco a programmare in C++.
Potreste consigliarmi un testo di media difficoltà sull'argomento COM e
ActiveX
Grazie per la risposta.
Bart.....





ActiveX
"Inside COM", Microsoft Press; c'e` una traduzione italiana di Mondadori
Informatica, ma non so dirti della qualita' della traduzione.  Attento a non
confonderlo con "Inside DCOM", stesse case editrici, che non ho visto
ma Davide Marcato ci dice essere abbastanza una ciofeca.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Rilevare inserimento chiavetta USB

Ciao a tutti,
    come da oggetto dovrei rilevare l'inserimento di una chiave usb per 
leggere un file di configurazione, il codice è scritto in c++ ed andrà su un 
processore Arm con linux embeded (ma dovrebbe essere uguale alla 
programmazione standard).
Grazie
    Nadir 

    Nadir
Ciao Nadir,
ti passo il codice che io uso per rilevare un device rimovibile sotto 
Windows. Purtroppo non � portabile su Linux ma magari puoi prendere 
qualche spunto.
Uso oggetti Qt, almeno quelli dovrebbero essere portabili sotto Linux.
static QString finddrive(int devider)
{
     switch(devider)
     {
     default:
     case 8:
         return QString("D:\\");
     case 16:
         return QString("E:\\");
     case 32:
         return QString("F:\\");
     case 64:
         return QString("G:\\");
     case 128:
         return QString("H:\\");
     case 256:
         return QString("I:\\");
     case 512:
         return QString("J:\\");
     case 1024:
         return QString("K:\\");
     case 2048:
         return QString("L:\\");
     case 4096:
         return QString("M:\\");
     }
}
QStringList drivelist, labelist;
QStringList UnitList;
int SearchForDrives()
{
     QString driveletter;
     int numRemovableDrives = 0;
     char *label = new char[MAX_PATH+1];
     UINT drivetype;
     DWORD logicaldrives, devider;
     logicaldrives = ::GetLogicalDrives();
     devider = 8;
     int numDrives = 0;
     QString unitString;
     for(int i = 0; i < 10; i++)
     {
         driveletter = finddrive(devider);
         devider *= 2;
         drivetype= ::GetDriveType(driveletter);
         if(drivetype == DRIVE_REMOVABLE)
         {
             drivelist.append(driveletter);
             ::GetVolumeInformation(driveletter, label, 
MAX_PATH+1, NULL, 			NULL, NULL, NULL, 0);
             labelist.append(label);
             unitString = driveletter;
             unitString += " ";
             unitString += label;
             UnitList.append(unitString);
             numRemovableDrives++;
         }
     }
     char PenInfoStr[100];
     if(labelist.size()==0)
     {
        printf("PEN_DRIVE_DETECTED");
     }
     else
     {
         for(int i = 0; i < numRemovableDrives; i++, numDrives++)
         {
             if (!drivelist.isEmpty() && !labelist.isEmpty())
                 sprintf(PenInfoStr, "%s : %s %s %s %s", 
"PEN_DRIVE_DETECTED", "UNITA"), 
drivelist.at
(numDrives), "LABEL", (const 
char *)
labelist.at
(numDrives));
             printf(PenInfoStr);
         }
     }
     return numDrives;
}
Maurus


Prova a dare un' occhiata a inotify (man inotify) e udev (man udev).
Dovresti poterlo fare (kernel 2.6) creando una regola su udev per 
crearti file o link o altro all'inserimento della chiavetta e metterti a 
livello applicativo in ascolto del relativo evento di creazione (inotify).
Saluti,
Gio
Newsgroup: it.comp.lang.c++
Titolo: c++ Builder 5

non riesco a compilare un progetto nuovo mi dice linker fatal error unable
open system.obj
come posso risolverlo.
Il SO è Win2000

 wrote in message
news:%FmJ9.860$
ab2....@news1.tin.it

Qui sei OT. Puoi provare a chiedere sui gruppi della gerarchia
borland.public.cppbuilder.*, disponibili sul server
newsgroups.borland.com
 (prevalentemente in  inglese, ma si puo' postare
anche in italiano).
Qui puoi scegliere quello piu' adatto:
http://info.borland.com/newsgroups/
Grazie,
Nicola Musatti
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:3ba13fc148e9a3caa1...@mygate.mailgate.org...


 ot cosa vuol dire?
Fuori tema.
Maurus
Newsgroup: it.comp.lang.c++
Titolo: BUG in programma scritto in Visual C++ 4

Salve a tutti,
sto scrivendo un programmino in Visual C++ 4.0 da presentare all' esame di
geometria.
Tale programmino "dovrebbe" permettere di ruotare tre assi X,Y,Z tramite la
pressione di determinati tasti (e di disegnare altre cose di conseguenza).
Il problema è che sembrerebbe funzionare tutto bene, senonché dopo circa
500 messaggi di tasto premuto (il numero preciso varia di volta in volta)
mi si blocca l' applicazione.
Se qualcuno avesse qualche dritta, o avesse riscontrato problemi simili,
potrebbe rispondermi in e-mail ?
Thanx very much !!
Samuele Sadocco
ssad...@texnet.it

 
ssad...@texnet.it
non sei abbastanza preciso, prova a postare qualche fetta di codice
-- =
Alessandro Temil, 
sch...@intercity.shiny.it
/******************************************
*"Si vis cacare, carta portare memento,  *
* utne restat merdam culum taccataaltuo" *
******************************************/

 
ssad...@texnet.it
non sei abbastanza preciso, prova a postare qualche fetta di codice
--


Newsgroup: it.comp.lang.c++
Titolo: Esempi di Borland c++ builder

Conoscete siti o faq dove ci sono esempi, funzioni, spiegazioni
di Borland c++ builder?
GRAZIE

GRAZIE
www.borland.com/bcppbuilder/books
Il Ghenio
-----
Jesse: Preparatevi a passare dei guai.
James: Dei guai molto grossi!!!
(Team Rocket)
-----

 
http://community.borland.com
Fausto

Newsgroup: it.comp.lang.c++
Titolo: instanceof dove sei????

Sono alle prime armi e tra l'altro vengo dal mondo ovattato di Java,
dove tutto è facile, chiaro e ben documentato.
Sto cercando di portare un'applicazione da Java a C++, per scopi
didattici e sto disperatamente cercando l'analogo C++ per l'operatore
instanceof che Java fornisce!!! (in pratica mi dice a che classe
appartiene l'istanza che lo invoca).
Possibile che non esista???
Se qualcuno l'ha visto me lo dice per favore!?

 Se qualcuno l'ha visto me lo dice per favore!?
Con l'RTTI e dynamic_cast, puoi scoprire se un certo oggetto
appartenga o meno a una data classe.  Con typeof, puoi avere
la type_info della classe (purche` polimorfica).  E` molto, MOLTO
raro che siano gli approcci giusti in C++: succede (se no, non ce
li avrebbero messi), ma l'esistenza di eredita` multipla, template,
ecc ecc, cambia molto le cose.
Alex

 Se qualcuno l'ha visto me lo dice per favore!?
Si tratta di usare quello che in C++ si chiama RTTI (Run-time type
identification): in pratica ti consente di trovare il tipo esatto di un
oggetto di cui hai solo il puntatore alla classe base. Per esempio se hai
una classe B derivata da A e vuoi sapere se un puntatore ad A ptrA č di tipo
B, fai un dynamic_cast:
ptrB = dynamic_cast<B *> ptrA;
se ptrB č 0 allora ptrA non č un'istanza di B.
Un altro modo č usare il typeid; un pň piů lungo da spiegare. Se sei pratica
di inglese:
http://www.cli.di.unipi.it/Beatrice/guide/lang/cpp/thnkcpp/TICA8-24_.html
Ciao,
Raffaele
Newsgroup: it.comp.lang.c++
Titolo: Ho capito bene?

Ciao a tutti.
Allora, ho cominciato a studiare il Visual C++. Sto facendo la tesi ed è da
quando mi sono diplomato che non metto più mano alla programmazione, io ai
tempi facevo Pascal.
Orbene, mi sono comprato il mio bel libro della Microsoft Press e mi sono
messo alla lettura, arrivo alle funzioni, tutto bene, dichiarazione del
prototipo, passaggi di parametri, restituzione, ecc.
Ma ora mi sorge un dubbio che non è chiaramente spiegato.
Nella dichiarazione del prototipo si indica il tipo della funzione a meno
che si indichi void. Questa dichiarazione da quello che riesco a capire si
riferisce a quello che io restituisco con la return vero?
Mi spiego meglio, all'inizio credevo che scrivere "int funzione(...)"
significasse: se la funzione la richiamo per esempio nell'assegnazione di
una variabile int devo fare in modo che sia int pure lei.
Poi però mi si parla dello stare attenti sulle restituzioni e che una cosa
del genere che segue è un bel bug:
"tipo& funzione(...)
 {
   tipo var = valore;
   return var;
 }"
funzione è un riferimento e siccome io ritorno var, all'uscita var che è
locale scompare dallo stack, e io ho una funzione che è un riferimento a
qualcosa che non c'è più e ho il mio bell'errore.
quindi mi sovviene che il tipo della funzione è strettamente legato
all'operazione di return e all'oggetto indicato dalla return.
Per esempio se io scrivo "const tipo& funzione(...)" la mia funzione è un
riferimento all'oggetto che io ritorno con la return, oggetto che non può
essere modificato una volta esurita la funzione (ovviamente un oggetto che
deve continuare ad esistere fuori dalla funzione).
Spero di essermi spiegato.
Ciao
--
Roberto
FV
----------
rob...@messora.com
ICQ# 37732681
----------
Membro di SFI Italy
Simulazioni PBEM di Star Trek
 
http://gioco.net/startrek
(Crusader, Highlander, Unicorn)
----------
Resistance is futile

 Spero di essermi spiegato.
Si, mi sembra che tu abbia capito bene.
EMG

 Si, mi sembra che tu abbia capito bene.
sono sollevato, ci ho messo un intero pomeriggio per arrivare a queste
conclusioni, sarebbe stata un'autentica delusione...
Grazie e ciao


Non ho capito tutto quello che hai detto (probabilmente la colpa non é
tua...), comunque se ad esempio dichiari:
int sum(int a,int b);
significa che la funzione 'sum' restituisce, tramite un return, un intero.
Ciao, buono studio Gianni (spero tu non faccia ingegneria)
P.S: che intendi con  <<....se la funzione la richiamo per esempio
nell'assegnazione di
una variabile int devo fare in modo che sia int pure lei.>>
--
Posted from 
twingo.tiscalinet.it
 [195.130.224.85] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: fatal error LNK1104: cannot open file "LIBCMT.lib"

Nell'utilizzare il comando cl.exe del VC++ 5.0 dal prompt di MS-DOS ho
ricevuto il seguente messaggio:
LINK : fatal error LNK1104: cannot open file "LIBCMT.lib"
Il file LIBCMT.lib è presente nella seguente directory
c:\Programmi\DevStudio\VC\lib, però  il cl.exe non è in grado di trovarlo.
Casa devo fare?
Grazie e ciao,
Fernando.

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: C++ Builder e STL

P

come si fa?
Dovresti importare il namespace std (se ti riferisci alla libreria standard del
C++) con
using namespace std;
Un'altra cosa...
evita di usare l'html.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Help Scope in Borland C++ 3

Ciao,ho un problema con il Borland C++ 3 Standard
Come faccio a modificare un componente VCL all'interno dei metodi di
un'altra classe?(definita in un altro file)
Non riesco ad avere la visibilità dell'oggetto,manca una qualche include??
Esempio:
  MainForm ha un TEdit di nome "Help"
  "File.h" è l'header file della classe File
  In "File.cpp" ho la definizione dei metodi
  Il metodo "prova" vorrebbe fare questo
   Help->Text="Ecco l'aiuto"
  Ma il compilatore dà questo errore:
   Undefined Symbol Help
  Come fare per farglielo vedere?
Grazie :-)

   Come fare per farglielo vedere?
Come tu suggerisci inserisci l'include di MainForm e poi riferisciti ad Help
cosi': MainForm->Help->Text="Ecco l'aiuto";
ammesso che MainForm sia il nome dell'oggetto del form principale
dell'applicazione.
Ciao,
SISMA


Vai in MainForm.h e nella 
sezione pubblic metti la riga : friend NomeDellaClasse;
dove NomeDellaClasse e' la classe il cui metodo deve accedere alla
mainform.
Se ancora non va  potrebbe essere che 
vuole invece di Help->Text="Ecco l'aiuto" 
MainForm->Help->Text="Ecco l'aiuto"
Ciao.
Newsgroup: it.comp.lang.c++
Titolo: Un po' di domande x esperti c++

Salve a tutti,
è da poco che mi sto cimentando in questo linguaggio e già sto trovando
grosse difficoltà!
Vorrei implementare una classe base MyException che estende la classe
standard exception per poter costruire una stringa contenente il nome della
classe che ha generato l'eccezione,  il nome del file e la linea di codice
dove si è verificato l'errore e se è un errore di sistema stampare il valore
di errno.
Poichè sono un po' a digiuno di conoscenze non so nemmeno da dove iniziare!
:)
Quale potrebbe essere una soluzione elegante in c++ per realizzare un
gestore di eccezioni?
L'altra difficolta che  non so come affrontare è la seguente:
Vorrei realizzare una classe base thread  che contiene un metodo virtuale
run() il quale
conterrà il codice del mio worker thread.
Se volessi istanziare dinamicamente tale classe vorrei che l'oggetto thread
partisse e quando dovrò fare la delete vorrei che il thread si fermasse e
poi venga distrutto correttamente!
Con l'overload dell'operatore delete potrei farcela?
Se un tale oggetto venisse creato staticamente come posso fare che
all'uscita dello scope non venga distrutto l'oggetto thread?
Non voglio essere ot per cui non mi interessa come creare un thread!!!
Mi interessa solo l'architettura da dover mettere su per poter gestire i
thread come java!!! Detto diversamente come dovrebbe essere realizzata una
classe thread?
Quale dovrebbe essere la sua interfaccia?
Nel caso non abbia reso l'idea di cosa ho in mente di fare a causa
dell'esposizione un po' terra-terra sono a disposizione per ogni
chiarimento! :)
Ringrazio per la cortese attenzione e mi auguro di poter avere un confronto
costruttivo!
Saluti

 Ringrazio per la cortese attenzione 
Di niente,
Ciao
Dan

 conterrà il codice del mio worker thread.
Prima di reinventare l'acqua calda, ti consiglio di valutare l'insieme 
di librerie open source del sito Boost (
http://www.boost.org
), che 
contiene, tra l'altro, le librerie 'thread' e 'test', e la libreria open 
source multilinguaggio 'log4j' (
http://logging.apache.org/
), 
inizialmente sviluppata per Java.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 di librerie open source del sito Boost (
http://www.boost.org
), 
Concordo con te sia sul discorso dell'"acqua calda" :-) sia sulla 
qualita' del materiale ospitato su Boost, pero' aggiungerei al nostro 
amico che scrivere una libreria (anche piccola) o qualche classe tipo 
String o Vector o List, ecc. (e quindi anche Thread) ex novo puo' essere 
un ottimo esercizio per imparare tecniche importanti.
Ciao,
Dan
Newsgroup: it.comp.lang.c++
Titolo: Guida all'assembler

Cerco disperatamente una guida su Internet che mi consenta di avvicinarmi
all'assembler .  Consigliatemene una semplice, veloce e concisa, tenendo
conto che sono quasi a digiuno di architettura del Computer. So a malapena
come è strutturata la memoria, e conosco le componenti interne in genere.
Dico questo, perchè un libro costa la bellezza di 100'000 l. pur essendo un
linguaggio un pò datato.

,

Non hai specificato il processore e/o la famiglia di processori
che ti interessano. Se sono gli Intel, non hai specificato
se ti interessano in modalita' reale o protetta, se ti interessa
principalmente usare le funzioni del bios, oppure partire per scrivere
un OS in modo protetto.
Quale sarebbe il tuo ambiente di supporto? DOS, nessun ambiente
(programmazione di BIOS e/o ROM per dispositivi embedded),
assembler per routine ottimizzate per Win32, Linux, OS2 ?
Direi di partire da 
www.x86.org
, oppure dai manuali Intel.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

 linguaggio un pò datato.
Prova a cercare il sito "The Coder's Primer" c'è un tutorial di Emanuele
DelBono per architettura x86,  il link è :
"
http://www.games.eden.it/thecodersprimer/
".
Ciao Lucio.

linguaggio un pò datato.
Dire che il libro costa troppo perche' l'assembly e' un po' datato non e'
molto corretto, in Italia i libri costano un occhio della testa
indipendentemente da fatto che trattino di giardinaggio o di computer.
Ritornando al linguaggio in questione forse non e' molto di moda ma e'
tuttora in voga soprattutto negli smanettoni un po' incalliti, daltra parte
certe cose le puo fare solo in assembly :-)). Prima di imparare l'assembly
dovresti imparare l'architettura della macchina su cui ti vuoi cimentare,
l'assembly e' un linguaggio fortemente dipendente dall'architettura e cio'
che e' specifico per una macchina quasi sicuramente non lo e' per un'altra
(inteso come famiglia di processori), se non a livello molto alto.
Ciao, Marco.

Newsgroup: it.comp.lang.c++
Titolo: SOLITARIO IN C++

Mi servirebbe un solitario in c++ con parte grafica anche scarza ho comunque
un sito su cui trovarlo.
Grazie per l'interessamento.
Daniel
P.S salvatemi la vita!

Quanto tempo fa il prof ti ha dato questo compito? oppure è un esame ?
Lawrence Oluyede
rhy...@insieme.net
"La realtà delle cose si nasconde dietro 
la loro reale apparenza (Maestro Hiamuri)"


Forse bisognerebbe realizzare un sito dove sono raccolti i nomi di tutte
le persone che chiedono via rete i compiti gia' fatti. Questo sarebbe a
disposizione dei prof. per dare i voti e delle aziende per verificare
che tipo di persone si presentano ai colloqui.
Ciao,
Nicola

 le persone che chiedono via rete i compiti gia' fatti.
...non basta fare un link all'elenco telefonico nazionale della Telecom ?
Davide (che non e' sull'elenco)
Newsgroup: it.comp.lang.c++
Titolo: Come si fa a compilare ?

E' da tempo che non compilo con sorgenti distribuiti su più file.... Come
devo fare ? Uso il borland 5.0....
A chi mi risponde può avere la pietà di darmi l'elenco dei comandi ??


Basta specificare tutti i sorgenti sulla linea di comando o utilizzare
il make.
EMG

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

Esiste in C++ una funzione che converte una stringa in un array di
caratteri (mi serve perche' devo passsare la stringa ad una funzione
scritta in c)?
Grazie ragazzi, siete davvero preziosi!!
Ciao
Arsenio Lupin
(togliere gli spazi e NOSPAM per rispondere in privato)

 scritta in c)?
Esiste il metodo
  const char* string::c_str() const
che restituisce un array di caratteri terminato da '\0' (esattamente
quello che ti serve).
L'array e` gestito dalla stringa, quindi non puo` essere modificato o
passato a delete.
        Mauro

passato a delete.
Grazie. Preciso e gentile.

Newsgroup: it.comp.lang.c++
Titolo: Aiuto programma

Ciao, mi è stato assegnato un programma da fare il C++ 3.0, però non mi è
tanto chiaro il testo.Questo è il programma:
allocare in un albero binario i cerchi di un file DXF con criterio: r>=rrad
DX, r<rrad SX. Annullare r dei cerchi in un dato Range.
Le mie domande sono queste:
Cosa significa rrad ???
C'è qualcuno che potrebbe aiutarmi a farlo o che lo faccia???




Ciao e grazie mille!!!
E-Mail: 
stec...@tin.it

C'č qualcuno che potrebbe aiutarmi a farlo o che lo faccia???
Probabilmente rrad significa radice.
Prendi come esempio il seguente codice C :
typedef struct _nodo_albero {
                        int valore ;
                        int cont ;
                        struct _nodo_albero *dx ;
                        struct _nodo_albero *sx ;
                } nodo_albero ;
typedef nodo_albero*  p_nodo_albero ;
void aggiungiNodo( p_nodo_albero *p, int valore ) 
{
     if ( *p == NULL )
     {
        *p = (nodo_albero*)malloc( sizeof **p ) ;
        (*p)->sx = (*p)->dx = NULL ;
        (*p)->valore = valore ;
        (*p)->cont = 0 ;
     }
     else
        if ( valore < (*p)->radice ) 
           aggiungiNodo( &(*p)->sx, valore ) ;
     else
        if ( valore > (*p)->radice )
           aggiungiNodo( &(*p)->dx, valore ) ;
     else
        ++(*p)->count ;
}
 

 C'è qualcuno che potrebbe aiutarmi a farlo o che lo faccia???
Se l'albero è ordinato,
( altrimenti non ne vedo lo scopo )
molto probabilmente rrad vuol dire raggio memorizzato nella radice,
ovvero il raggio memorizzato in ogni nodo che tu aggiungi.
scorri il dxf fino alla sezione  'ENTITIES'
cerchi ogni occorrenza dell'entità 'CIRCLE' che è organizzata così:
Group code Description:
100           Subclass marker (AcDbCircle)
39             Thickness (optional; default = 0)
10             Center point (in OCS) DXF: X value; APP: 3D point
20, 30       DXF: Y and Z values of center point (in OCS)
40             Radius
210           Extrusion direction (optional; default = 0, 0, 1)DXF: X value;
APP: 3D vector
220, 230   DXF: Y and Z values of extrusion direction  (optional)
( help ufficiale acad 2000)
leggi il 6° valore ( scarta la virgola) e con quello entri nell'albero,
per ogni nodo fai il confronto e quindi decidi.
Con il C++ sto uno schifo, quindi non mi ci metto,
comunque di esempi su come trattare gli alberi binari se ne trovano a kili
sui libri.
Alessandro.
Newsgroup: it.comp.lang.c++
Titolo: Quale libreria "ZIP"?

Ciao a tutti,
Esiste qualche libreria che mi consenta compressione e archiviazione
tipo "winzip" che supporti semplici operazioni come inserimento,
estrazione e cancellazione di files in archivio? A dire il vero qualcosa
ho trovato (ZipArchive della Artpol) ma non ho la più pallida idea di
come compilarla col borland 5.5 a linea di comando; so usare solo
quello, e non so programmare sotto windows o altro. Solo capire dove
stanno le info è un casino per il mio livello (se provo a compilare,
vuole dei files ".h" che non esistono nel package). Esistono alternative
(ovviamente "free") che io possa compilare prendendo un elenco di files
e soprattutto che sia alla mia portata? Mi servono solo le operazioni di
base, non devo farci cose complicate né sono vincolato da velocità e
prestazioni.
grazie infinite.
Apx.

 
Libreria gzip...c'è tutto, anche il codice sorgente!

 estrazione e cancellazione di files in archivio?
Prova a vedere questa libreria:
http://www.gzip.org/zlib/
Ciao
Andrea 

Grazie a entrambi; nel frattempo che avevo postato l'ho "scoperta" e
complilata felicemente. Purtroppo il programma di esempio inserisce un
singolo file "foo" nell'archivio. Ho capito male io oppure la libreria
si limita a compattare/scompattare un singolo stream e al file archivio
(cioč, quello che contiene i files da comprimere) ci devo pensare io?
Se, invece, funziona come un normale archiviatore, come si fa a inserire
un file dato per nome con la sua stringa di caratteri? E se non si puň
direttamente, si puň fare?
grazie di nuovo!
Apx.

Newsgroup: it.comp.lang.c++
Titolo: problemi con CString

Salve a tutti...
Potreste aiutare a risolvere un problema...
Io voglio far apparire in una edit una stringa del tipo "Il risultato
è : Valore_Numerico"
dove Valore_Numerico è un double..
Come devo fare...
Non esiste in c++ la concatenazione di stringhe?



probabilmente sei un po' OT.
In ogni caso crea prima la stringa con sprintf() e poi ci fai quello che
vuoi.
ciao
Newsgroup: it.comp.lang.c++
Titolo: INTERFACCIE DOS





CIAO A TUTTI,


sto cercando disperatamente classi e/o librerie per 
c++ builder 5.


Vi ricordate le vecchie finestre dos ecco purtroppo 
devo scrivere un programma con quel tipo di interfaccia.


Esistono secondo voi librerie già fatte oppure 
conoscete dei tutorial su come implementarle.


Grazie a tutti...


DEVIS



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 
forums.borland.com
 (in inglese)
Per favore, evita di inviare messaggi in HTML; e' contrario alla
netiquette perche' aumenta notevolmente il traffico di rete (ricorda che
i messaggi news vengono scambiati tra migliaia di server). Inoltre molte
persone usano newsreader che non gestiscono i linguaggi di markup.
Cio' detto, con C++ Builder puoi ottenere un programma di tipo DOS (ma
che resta comunque un'applicazione Windows) selezionando New... ->
Console Application.
Ciao,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: [puntatori] segmentation fault: molto strano

Sto facendo il test di ciň che ho realizzato. Sembrava funzionasse tutto...
Si verifica un segm.fault in una situazione riassunta in questo modo:
class BP {
...
 lp *pred;
...
 void Add( ... );
}
BP::BP() {
...
 pred = new lp;
...
}
void BP::Add ( ... ) {
 lp *temp;
 temp=pred;  <==QUI SI VERIFICA UNA SEGM.FAULT...MA NON SEMPRE!!!
}
non si verifica sempre. Per una test che ho fatto tutto fila liscio. Ho 
provato con un altro test e alla terza o quarta chiamata su Add si verifica 
la segm.fault.
Cosa puň essere secondo voi?
Ciao e grazie?
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

  temp=pred;  <==QUI SI VERIFICA UNA SEGM.FAULT...MA NON SEMPRE!!!
Cosa e il valore del puntatore this ?
E possibile che il funzione che chiama Add non a un ogetto BP constuito 
bene ?
(scuza che non scrivo bene il italiano)
G


 }
Come usi gli oggetti di tipo BP? Come hai scritto il costruttore di
copia e l'operatore di assegnamento della classe? Come hai scritto il
distruttore?
Ciao,
Nicola

 Nicola
Ciao, grazie, Daniele.


 (scuza che non scrivo bene il italiano)
(se ti posso aiutare allora... "scusa se non scrivo bene in italiano")
ciao e grazie.
[cut]


effettivamente il problema era che non esisteva l'oggetto nell'array di 
puntatori sul quale richiamavo l'Add...ma all'inizio non c'avevo creduto 
perche' mi sembrava strano che cmq nell'Add c'entrasse e solo dopo aver 
richiamato l'assegnazione mi dava errore.
Come mai?
Ciao! e grazie.


 una lista con puntatori).
Per evitare brutte sorprese, se si definisce il distruttore bisogna
definire anche il costruttore di copia e l'operatore di assegnamento.
Esempio:
  BP* bp1;
  bp1.add(...);
  ...
  BP* bp2 = bp1;  // bp2->pred == bp1->pred
  delete bp2;     // distrugge il contenuto di bp2, che e` lo
                  // stesso di bp1
 
Adesso bp1 contiene della spazzatura, e ogni operazione normalmente
innocua puo` provocare un seg fault.
In questo caso il "sabotaggio" era esplicito, ma la stessa cosa puo`
capitare in maniera piu` subdola, per esempio passando un bp1 per
valore a una funzione.
Per le liste ti conviene usare std::list, o altri contenitori standard
a seconda delle esigenze, soprattutto se sei all'inizio con il C++.
        Mauro
Newsgroup: it.comp.lang.c++
Titolo: enum





Ho per voi una domanda sugli "enum".


 


Se non ricordo male dichiarando


 


enum PIPPO


{


    PIPPO_A,


    PIPPO_B,


    PIPPO_C


} pippo;


 


ottengo pippo che è praticamente di tipo int 
(signed int).


 


E' possibile dichiarare un enum di tipo unsigned 
int ?


 


 


Grazie.


 


Emiliano


 


 




Teoricamente e' possibile se attribuisci esplicitamente un valore di
tipo unsigned agli elementi del tuo enum:
enum pippo {
  pippo_a = 0u,
  pippo_b,
  pippo_c
};
Ciao,
Nicola
P.S. E' preferibile riservare gli identificatori tutti maiuscoli per le
macro.   Eviterai conflitti imprevisti.

 };
Sei sicuro ? Dalla norma (§7.2/4,5) :
    Each unumeration defines a type that is different from all
    other types. [...]
    The underlying type of an enumeration is an integral type
    that can represent all the enumerator VALUES defined in the
    enumeration. [...]
Se hò ben capito, i tipi degli enumeratori non importano.
Nelle espressioni, c'è §4.5/2: "An rvalue of type wchar_t or an
enumeration type can be converted to an rvalue of the first of
the following types that can represent all the values of its
underlying type: int, unsigned int, long, or unsigned long."
Se hò ben capito, se i valori sono 0, 1 e 2 (come qui), in
un'espressione, l'enum si convertisce in int.
In fatto, il solo caso che trovo dove il tipo dell'espressione
gioca un rolo è quando si serve dell'enumeratore primo la fine
della dichiarazione dell'enum, cioè :
    enum E
    {
        toto = 1L,
        titi = sizeof( toto )
    } ;
    std::cout << titi << ", " << sizeof( toto ) << '\n' ;
Compilato in modo 64 bits, da "8, 4". O
    enum E
    {
        toto = 1U,
        titi = (-1 < toto)
    } ;
    std::cout << titi << ", " << (-1 < toto) << '\n' ;
Dà "0, 1".
In generale, credo che la sola possibilità per fare che un enum
se comporta com un unsigned int è di ci mettere un valore
abbastanza grande, per essempio:
    enum E
    {
        //  ...
        soloPerAssicurareCheEUnsigned = 0U - 1 ;
    } ;
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34

 Se hò ben capito, i tipi degli enumeratori non importano.
Hai ragione, mi sono sbagliato. Avevo letto questa parte di 7.2/4:
"the type of each enumerator is the type of its initializing value. If
an initializer is specified for an enumerator, the initializing value
has the same type as the expression. If no initializer is specified for
the first enumerator, the type is an unspecified integral type.
Otherwise the type is the same as the type of the initializing value of
the preceding enumerator unless the incremented value is not
representable in that type, in which case the type is an unspecified
integral type sufficient to contain the incremented value."
Non mi ero reso conto che era preceduta da:
"Following the closing brace of an enum-specifier, each enumerator has
the type of its enumeration. Prior to the closing brace, [...]"
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: esecuzione dei programmi in altri PC

ciao gente...credo di essere OT ma ho davvero bisogno di questa 
informazione, e poi non riesco a trovare NW pertinente alla mia semplice 
domanda...
Dunque, mi ritengo ad un livello davvero orrido di programmazione, ed anche 
se mi faccio pena, mi piacerebbe che i miei programmini possano essere 
eseguiti in altri computre, tanto per portarmeli in giro ed eseguirli quando 
mi servono.
Allora io uso borland c++ 6.0, scrivo il codice alla vecchia, utilizzando 
poche librerie, lo compilo e lui mi crea il file .exe lo eseguo dal mio PC e 
tutto OK, ma se vado con lo stesso file in un altro computer mi da un errore 
di un certo file .dll che non trova
help
grazie mille e scusate la forse banale domanda
    ciao 

 di un certo file .dll che non trova
Stai compilando e linkando l'eseguibile in modo che usi le DLL runtime
del c++.
Quando lo esegui su un altro pc cerca di caricare in memoria files tipo
cc326mt.dll e non li trova.
Per far girare gli eseguibili su un'altra macchina devi compilare il
programma in modo statico. Nelle opzioni del linker (e nelle advanced
options nel menu project) disattiva ogni riferimento alla compilazione
runtime (tipo "Use dynamic RTL").
Attenzione che il file compilato così occupa molto più spazio del
precedente.
Ciao
Jarod

Grazie tantissimo...funziona!!!
(ci ho messo un po' per il ponte)

Newsgroup: it.comp.lang.c++
Titolo: char, signed char e unsigned char

Leggendo questo:
 
http://www.sgi.com/tech/stl/hash.html
ho constatato che le tre varianti di char sono tipi distinti.
Perchè ?
Saluti
-- 
a/l/e/f/

 Perchè ?
signed char e unsigned char hanno ovviamente comportamento diverso.
char esiste come tipo separato per permettere di scrivere codice
portabile che sfrutti il tipo di carattere nativo del sistema, che a
seconda dei casi puo' essere con o senza segno.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: caricamento dinamico di librerie c++

avete mai sentito parlate della possibilà di caricare dinamicamente (a
tempo d'esecuzione) codice c++?
ma più che altro: ha senso questa domanda?
conosco il funzionamento di dld, e del fatto che essenzialmente, una
volta caricato un modulo, se ne cercano dentro i simboli. ma in c++ i
simboli sono mangled (quindi il loro nome a livello di linker è
sostanzialmente ignoto) e in più come si fa a istanziare una classe i
cui metodi sono stati caricati in questo modo?
boh..., qualcuno può schiarirmi le idee? grazie, Touch

ma più che altro: ha senso questa domanda?
Su un ng diverso da questo sì. La possibilità di caricare dinamicamente
delle librerie è data dal sistema operativo, non dal linguaggio.
Prova a chiedere su uno dei tanti ng di programmazione windows o linux.
Ciao
Domenico Barra