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

Come ricavo l'ora attuale in formato HH:MM ???
Posso convertirla in stringa?
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
Ciao da Kleidemos
C++ Programmer
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

Kleidemos wrote:
::  Come ricavo l'ora attuale in formato HH:MM ???
::  Posso convertirla in stringa?
puoi fare cosi':
#include <time.h>
char strDate[5]; // la dimensione (5) dipende dal formato dell'ora!
time_t TIME;
tm* T;
time(&TIME);
T=localtime(&TIME);
sprintf(strDate, "%02d:%02d", T->tm_hour, T->tm_min);
per ulteriori dettagli: man 3 ctime
-- 
Luca Vagnozzi
 
 @Icq:  66627947
 @Mail: 
vagn...@cs.unibo.it
 @Web:  
http://www.cs.unibo.it/~vagnozzi

 Posso convertirla in stringa?
Una volta che hai ore e minuti come interi, puoi usare 
std::ostringstream per accumulare i valori, e poi il suo metodo str() 
per averli come string.
Esempio:
#include <iostream>
#include <sstream>
#include <iomanip>
int
main(int argc, char * argv[])
{
     int hh = 12;
     int mm = 5;
     std::ostringstream ostr;
     ostr << std::setfill('0')
	 << std::setw(2) << hh
	 << ":"
	 << std::setw(2) << mm;
     std::cout << ostr.str() << std::endl;
     return 0;
}
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

Newsgroup: it.comp.lang.c++
Titolo: Visibilita' funzioni da DLL

Un saluto a tutti...
Ho realizzato utilizzando il Wizzard una DLL chiamata FORVAL.DLL.
// dalla mia applicazione ho caricato la libreria con:
HINSTANCE gLib = LoadLibrary( _T("FORVAL.DLL") );
// ho dichiarato la funzione presente nella DLL:
typedef LPTSTR (*FORMATTAVALUTA)( LPTSTR, LPTSTR );
FORMATTAVALUTA FomattaValuta;
ed ho estrapolato la funzione (presente nella DLL):
FormattaValuta = (FORMATTAVALUTA)GetProcAddress( gLib,
_T("FormattaValuta") );
Il tutto funziona regolarmente ma ho difficolta' a far vedere la
funzione 'FormattaValuta'
in tutte le classi, vorrei cioe', poterla chiamare ovunque.
Ho provato ad inserire la dichiarazione nei .H ma ho errori in
compilazione.
Riesco a far 'vedere' gLib mettendola nel CWinApp come variabile membro
a cui accedo con
AfxGetApp(), ma non so come fare con la dichiarazione della funzione.
Come posso fare??? Avete un'esempio???
Ciao e Grazie.

 Ho realizzato utilizzando il Wizzard una DLL chiamata FORVAL.DLL.
Per questi argomenti č meglio utilizzare il nuovo newsgroup
it.comp.programmare.win32 (non ricordo se questo č proprio il nome
esatto).
EMG
Newsgroup: it.comp.lang.c++
Titolo: trim di una stringa

come si fa in c++ il trim di una stringa, cioč eliminare tutti gli
spazi (e i newline e i tab, ecc.) dall'inizio e dalla fine della
stringa?
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 stringa?
Devi fare il trim da destra e da sinistra. Quello che segue e' il trim
da sinistra e nel secondo parametro metti (se vuoi) i caratteri da
"trimmare".
std::string TrimLeft(const std::string& sText, const std::string&
sStopChars = " \t\n\r\f")
{
 std::string sLine(sText);
 int nTrim = sLine.find_first_not_of(sStopChars);
 if (nTrim == std::string::npos) return std::string();
 return sLine.erase(0, nTrim);
}
Ti consiglio di dare un'occhiata anche alle routine di manipolazione
testo di boost (
www.boost.org
).
Ciao
Gian Michele

Newsgroup: it.comp.lang.c++
Titolo: nome dell'oggetto

salve a tutti, qualcuno conosce mica se e' possibile stampare il nome dell'oggetto? sapevo che si poteva fare ma non so assolutamente come, e' utile in fase di debugging ...
esempio
Class classe
{
	public:
 
	char* nome() const
	{
	// qualcosa che scriva il nome dell'oggetto THIS
	}
}
classe uno;
classe due;
cout << uno.nome() <<
due.nome() << endl;
// restituisce uno , due
Muzero

Non penso sia possibile a meno di passare il nome
della variabile al costruttore.
Al massimo puoi stampare il nome del tipo (classe).
Max


> salve a tutti, qualcuno conosce mica se e' possibile stampare il nome
dell'oggetto?
potresti fare un metodo id() che restituisce una stringa
esempio:
class pino
{
    ....
    string id(){return "pino";}
    ....
}
class ciccio
{
....
string id(){return "ciccio";}
...
}
pino p1;
ciccio p2;
cout<<
ciccio.id
()<<
pino.id
();
come soluzione non è male, ma dipende molto dall'uso che ne fai
se è solo per controllo puoi anche farti un tipo enumerativo e usare quello
ma anche li, dipende per che controlli devi fare
valuta tu la soluzione

 wrote in message
bbqcq7$p87$1...@newsreader.mailgate.org...

Non è quello di cui aveva bisogno. Per ottenere il nome della classe per il
debug, la soluzione imho migliore è il comodissimo operatore RTTI type_id
che restituisce la classe type_info tra i cui membri è disponibile anche il
dato name.
Lui però aveva bisogno di un metodo che restituisse l'identificatore
utilizzato per istanziare la classe, e per fare questo, come Massimo aveva
precedentemente fatto notare, non esiste un modo nativo reso disponibile dal
linguaggio ma il esiste invece (probabilmente l'unica soluzione
intelligente) il work-around di memorizzare tale nome in un dato membro
inizializzato dal costruttore con un parametro passato da fuori.
Newsgroup: it.comp.lang.c++
Titolo: parola riservata

Salve a tutti, vorrei chiedervi se esiste una parola riservata
alternativa a gets() mi serve per un programma sulle stringhe...Grazie

 
Gulp...parola riservata alternativa a gets()?!?
Ma che stai a dě?!? :-)

 alternativa a gets() mi serve per un programma sulle stringhe...Grazie
gets() non e' una parola chiave, e' una funzione di libreria. Se vuoi
leggere stringhe da file ti consiglio di usare std::getline(), che
prende come argomenti lo stream da cui leggere e la stringa
(std::string) da riempire.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: metodo static

Salve a tutti,
ho il seguente problema:
class foo {
private:
    static bool status;
public:
    static inline bool GetStatus() {
       ...
       return status;
    }
    ...
};
bool foo::status = 0;
Se in un altro modulo richiamo il metodo in questo modo:
bool b = foo::GetStatus():
Il compilatore Microsoft mi da un errore di link dicendo che non riesce a
trovare l'entry della variabile membro status!
Cos'è che non ho capito nell'uso della keyword static?
Grazie


A me sembra che hai capito tutto.
Questo programma
#include <iostream>
class foo {
private:
    static bool status;
public:
    static inline bool GetStatus() { return status; }
};
bool foo::status = false;
int main() {
   bool b = foo::GetStatus();
   cout << b << endl;
   return 0;
}
compila e stampa 0.


Mi sono dimenticato!
Compila e stampa 0 col gcc.

 bool foo::status = 0;
Se hai fatto cosi' dovrebbe funzionare.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Ancora sui messaggi...

Salve a tutti e bentornati dalle ferie (chi ci e' andato).
Sono ancora qua a torturarvi coi messaggi di Windows e vi spiego il mio
problemino.
Con VC++ 5.0 ho creato una applicazione Dialog-based, ho creato una
classe CMyStatic derivata dalla CStatic, da cui differisce solamente
per la ridefinizione della funzione
void CMyStatic::OnMouseMove(UINT nFlags, CPoint point) 
{
	AfxMessageBox("mousemove");	
	CStatic::OnMouseMove(nFlags, point);
}
Questo mi serve solo per vedere se intercetta la funzione, poi il codice
finale sara' ovviamente diverso.
Nella funzione OnInitialUpdate della Dialog creo l'oggetto CMyStatic in
questo modo:
pippo.Create("pippo",SS_BITMAP|SS_SUNKEN|WS_VISIBLE,CRect(100,100,300,300),this);
L'oggetto 'pippo' e' definito nel file .h come
CMyStatic pippo;
Io vorrei che quando il mouse cade sopra la finestra del mio oggetto
CMyStatic venisse lanciato il corrispondente messaggio WM_MOUSEMOVE,
in modo da poterlo intercettare e gestire.
Invece questo non succede, perche' riesco ad intercettare sempre e solo
il messaggio WM_MOUSEMOVE della Dialog, e non della CMyStatic.
A questo punto vi chiedo: esiste un modo automatico per fare cio' oppure
sono costretto ad intercettare sempre e comunque il WM_MOUSEMOVE della
Dialog, guardare le coordinate per vedere se rientrano nella posizione
della CMyStatic e, in caso affermativo, lanciare il mio codice?
E tale funzionamento e' valido per tutti i messaggi ??? (WM_MOUSEMOVE e' 
in realta' un pretesto per casi piu' generali...)
Ho provato anche a fare un progetto MDI, dove ho 'creato' sulla View
il solito oggetto CMyStatic, ma anche qui riesco ad intercettare il
WM_MOUSEMOVE della View, ma non quello dell'oggetto CMyStatic.
Vi ringrazio in anticipo per la disponibilita'.
Lorenzo

 
I controlli STATIC normalmente non interagiscono con l'utente ma se 
specifichi il flag SS_NOTIFY allora tutti i messaggi WM_MOUSExxxx ti 
verranno notificati.
Forse non ti eri accorto che anche il click (destro o sinistro) non
funzionava.
Cosi' la creazione della finestra diventa:
pippo.Create("pippo", SS_BITMAP | SS_SUNKEN |WS_VISIBLE | SS_NOTIFY,
             CRect(100,100,300,300), this);
                                                            / \
                                                             |
--------------------------------------------------------------
Ti consiglio ti guardare l'help sul controllo CStatic dove viene
trattatto
il suddetto flag.
Non ti aspettare grandi spiegazioni :-(
Ciao,
 Davide
--
Posted from [194.184.159.36]
via Mailgate.ORG Server - 
http://www.mailgate.org
Newsgroup: it.comp.lang.c++
Titolo: getargs in C++

Esiste una libreria che faciliti la gestione degli argomenti da riga di
comando in C++ come getargs in perl (e in altri linguaggi, credo)?

 comando in C++ come getargs in perl (e in altri linguaggi, credo)?
man 3 getopt
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 comando in C++ come getargs in perl (e in altri linguaggi, credo)?
Prova a vedere se Boost.ProgramOptions fa al caso tuo:
http://boost.org/doc/html/program_options.html
Ciao,
Nicola Musatti

Grazie a tutti, anche per avermi fatto capire che non conosco per
niente man...
;-)

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

Scusate ma vorrei sapere dove posso trovare un sito chetratti la
costruzione,l'apertura e chiusura di file?
Grazie

...

Newsgroup: it.comp.lang.c++
Titolo: Linguaggio C: aiuto!!!!!



Sono uno studente di Ingegneria Aerospaz. e sto lavorando alla mia tesi.

Devo fare un programma in linguaggio C che modifichi dei file, che
andranno in pasto a programmi FEM (elementi finiti). Siccome sono circa5
anni che non scrivo più in C, sono molto arruginito e sto incontrando qualche
problema...con i puntatori e le liste!

Chi mi sa dire perfavore perchè il puntatotre al primo elemento della
lista viene sempre aggiornato? (e in particolare assume lo stesso valore
del puntatore all'ultimo elemento!)

NOTA:
 struct nodo
 è una struttura dati formata da:

    un campo 
int
,

    3 campi 
float


    un campo 
struct nodo *




int lstnodi()   
        {
         struct nodo *s;        /* puntatore all'elemento       */
         int   n=0, i=0;        /* contatore locale             */  /*check*/
         int  ID=0;             /* Identificativo nodo          */
         float x=0;             /* Coordinata nodo              */
         float y=0;             /* Coordinata nodo              */
         float z=0;             /* Coordinata nodo              */
         char stc[lac];         /* stringa letta                */
         char stf[lac];         /* stringa di controllo         */
         s=NULL;                /* Inizializza puntatori        */

         strcpy(stf,"*ELEMENT, TYPE=C3D8E, ELSET=P1");
         stf[lac-2]='\n'; stf[lac-1]=0;







         while(strcoll(stc,stf)!=0)   /* Crea lista nodi   */
           {
            s=(struct nodo *)malloc(sizeof(struct nodo));   /* Richiesta memoria */
            if(!s){
                   printf("\nMemoria esaurita !\n");
                   fclose(inp);
                   exit(1);
                  }
            fscanf(inp," %d, %f, %f, %f", &ID, &x, &y, &z);     /* lettura */
                s->IDn=ID;
                s->xn=x;
                s->yn=y;
                s->zn=z;
            /* printf("\n%d %f %f %f\n",s->IDn,s->xn,s->yn,s->zn); /* Check point */
            if(!*ultimo){     /* primo elemento lista */
                         *ultimo=s;    
                         *primo=s;
                         i=i++;              /* Check */
                         printf("primo:%p ID:%d i:%d\n",*primo,(*primo)->IDn,i); /* Check */
                        }
            else {    /* altri elementi lista */
                  (*ultimo)->next=s;
                 }
            s->next=NULL;
            *ultimo=s;
            fgets(stc,lac,inp);    /* lac= lunghezza strina definita con #define */
            printf(" primo:%p ID:%d \n",*primo,(*primo)->IDn); /* Check */
            printf("ultimo:%p ID:%d \n",*ultimo,(*ultimo)->IDn); /* Check */
            n++;
           }
         return(n);
        }







Dimenticavo!!!!!!!!!!

i puntatori sono stati definiti come variabili globali:

struct nodo **primo;


struct nodo **ultimo;


 Devo fare un programma in linguaggio C che modifichi dei file, che
Il linguaggio C si discute in it.comp.lang.c, NON it.comp.lang.c++.
Alex
PS: meglio comunque NON postare in HTML.
Newsgroup: it.comp.lang.c++
Titolo: Problema

Ciao a tutti
sono uno nuovo di questo newsgroup sarei grato a chiunque potrà aiutarmi con
questo piccolo problema.
Vi ringrazio anticipatamente.
Fornire la soluzione del problema z=A*x+y noto come Gaxpy (General A * x +
y), dove A è una
matrice di dimensione m * n, x è un vettore di dimensione n, y e z sono
vettori di dimensione m.
L'elaborato scritto consiste nella Documentazione completa (privo solo degli
elementi di
complessità e precisione) della soluzione realizzata mediante l'uso di una
unica Procedura (gaxpy)
che esegue il calcolo. È consentito, eventualmente, l'uso di una procedura
di lettura dati, che però
deve essere documentata a parte.
Non è consentito l'uso di variabili globali. È necessario l'uso corretto dei
parametri.

 questo piccolo problema.
I compiti per le vacanze si danno anche all'universita' o solo agli
aspiranti periti?
Maurus

 dei parametri.
Bene... In effetti le variabili globali sono da usare con *molta* attenzione.
Buon lavoro!

Newsgroup: it.comp.lang.c++
Titolo: aiuto programmazione videogiochi

Sapete dove posso trovare della documentazione per progammare un videgioco,
magari in italiano? vorrei tanto poter progammare un gioco di carte.
Bye Gube

 magari in italiano? vorrei tanto poter progammare un gioco di carte.
in gioco di carte lo puoi fare in C++ standard e questo e' quindi il posto
adatto.
tuttavia un VIDEO-gioco non lo si puo' davvero fare con il *solo* C++
standard.
quindi la domanda e': sotto linux? sotto mac? sotto windows? etc.....
Non importa che tu risponda qui... piuttosto rivolgiti ad un NG specifico.
Ad esempio nel caso di windows: it.comp.programmare.win32.
Tommy

magari in italiano? vorrei tanto poter progammare un gioco di carte.
it.comp.giochi.sviluppo
--
Scritto da Gordon
E-mail: 
tbe...@avpu.vg


Ancora meglio: it.comp.giochi.sviluppo
Poi dipende cosa cerchi....
documentazione sulla programmazione di videogiochi in generale
oppure documentazione su qualche libreria in particolare da usare ?
--
Ciao!

 Ancora meglio: it.comp.giochi.sviluppo
si.... anche se per un gioco di carte....
cmq, quello che hai suggerito, e' certamente un punto di riferimento
migliore!
Tommy

 ha scritto nel messaggio
news:ooIwa.97071$3M4.2...@news1.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: STL, heap e search

Salve, ho un (pikkolo) problema:
ho una serie di oggetti di una classe che devo tenere "ordinati" in modo
da poter pescare sempre (e solo) il piu' piccolo (secondo una variabile
della classe).
Ovviamente la soluzione piu' semplice (e veloce) e' una priority_queue
STL in cui tengo i puntatori agli oggetti, ovviamente fornendo alla
priority queue una funzione di comparazione ad hoc.
Ora il problema e' che se due elementi risultano ++uguali++ mi
piacerebbe poterli trattare in modo "furbo", per esempio CONTANDONE le
occorrenze piuttosto che inserendone due istanze nella priority_queue.
E qui casca l'asino...
La priority_queue altro non e' che (normalmente) un vector<> in cui sono
ridefinite le operazioni di push, pop e top in modo che usino le
funzioni push_heap, pop_heap, eccetera, qindi in pratica una
priority_queue e' un vector con struttura interna ad heap...
DOMANDA: esiste un algoritmo
 - veloce e
 - PORTABILE
   (UNIX, Mac e Win, non legato ad una particolare implem. dell'STL)
che faccia una ricerca su un heap ?
Se usassi un vector ordinato "normalmente" potrei usare una
binary_search, ma poi mi tocca, per fare un'inserzione, spostare molti
elementi, mentre con l'heap l'inserzione e' veloce...
L'ideale sarebbe una heap_search con complessita' O(log(N)), qualcuno
puo' aiutarmi ?
BTW, in mancanza di qualcosa di univesalente portabile mi andrebbe bene
anche qualcosa di non portabile ma corredato di una classe facente
funzione dell'heap, ovvero potrei non usare l'STL per questo pezzo di
programma...
Saluti, Tommaso ;-{))

 ....
Hai provato con "multimap".
Fausto

 occorrenze piuttosto che inserendone due istanze nella priority_queue.
Potresti mettere come elemento della priority_queue una struct con
valore e contatore e prima di immettere l'elemento cercare se esiste già
(non so però se questa operazione risulta accettabile per i tuoi
vincoli) ed eventualmente aggiornare semplicemente il contatore.
EMG



e' proprio quello che voglio evitare, perche' la priority_queue andrebbe
scansionata tutta in maniera sequenziale e questo e' troppo lungo...
Mi occorrerebbe qualcosa di cercabile in un O(log(N)), non in un O(N)...
Saluti, Tommaso ;-{))

std::multimap , come ti e' gia' sttao suggerito.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Newsgroup: it.comp.lang.c++
Titolo: CBuilder e il debugger

Salve a tutti!
Qualcuno sà come è possibile disabilitare in fase di debugger il controllo su
un eccezione....
...mi spiego meglio : Ho creato una procedura che controlla il verificarsi di
un eccezione tramite un try-catch e prende dei provvedimenti a seconda che una
certa eccezione si verifica.... tale eccezione può verificarsi anche molte
volte in fase di esecuzione e viene gestita dal blocco in maniera 'silenziosa'
dal relativo blocco catch.
Ovviamente il funzionemento del programma compilato è impeccabile.... ma come
si fà ad eliminare le segnalazioni di eccezione quando sono in fase di
debugger???
Grazie per l'attenzione.
-- 
Posted from  [151.39.223.27] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Menu Tools/Debugger Options e togli il check da "Integrated Debugging".
Questo andrà benissimo se devi eseguire il programma dall'IDE del BCB
e non vuoi la seccatura del debugger ad ogni eccezione ma come
effetto collaterale avrai lo stesso disabilitato con l'impossibilità
di fare il tracing... e tutto il resto!
Una soluzione migliore è andare sempre in "Debugger Options"
nel tab "Language Exceptions" ed aggiungere l'eccezione interessata
all'apposita lista......
Spero di esserti stato di aiuto, ciao.
Newsgroup: it.comp.lang.c++
Titolo: Stampa il contenuto di una cartella

Ciao, devo realizzare un piccolo programmino (dos-win) che legga il
contenuto di una cartella e cioč il nome di ogni files al suo interno e
scriva questa lista su un file di testo.
Dove posso trovare un po' di documentazione sui comandi che mi servono per
fare questo? Piů che altro come posso leggere il contenuto di una cartella
file per file.
Qualcuno mi puň aiutare.
Grazie in anticipo
Filippo 

 
Ciao,
io tempo fa ho avuto il tuo stesso problema, ma a quanto sembra non 
esiste niente nello standard che ti permette di elencare i 
files/directory all'interno di una directory.
Io alla fine  ho risolto con le win32.
Spero ci sia cmq qualcuno che ti dia una risposta più esauriente
Ciao

 Spero ci sia cmq qualcuno che ti dia una risposta pių esauriente
Volendo esiste filesystem di boost.
http://www.boost.org/libs/filesystem/doc/index.htm
non e' C++ standard, ma questa libreria di boost e' cmq disponibile su:
"The library is in regular use on Apple Mac OS, HP-UX, IBM AIX, Linux,
Microsoft Windows, SGI IRIX, and Sun Solaris operating systems using a
variety of compilers."
quindi e' piu' portabile rispetto all'uso delle win32 apis. Se il
programma deve essere portabile meglio usare questa libreria boost (o
altre simili) se invece la portabilita' non e' importante allora tanto
vale usare le win32 api (se sei sotto windows).
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

"noob" <n0...@n00b.noob> ha scritto nel messaggio
news:nVYSe.17706$O6.10...@news3.tin.it...

Ho pensato di avviare un "dir nomedir >> dir.txt" sfruttando dos e poi
prendere i vari nomi dal file di testo dir.txt.
Ma come mai quando leggo il files mi prende anche degli spazi che in realtà
non ci sono?
Leggo con "fgets" alcuni caratteri alla volta ma non mi trova la fine linea
contrariamente a quanto specificato...
Mi sapete aiutare?
Grazie
ciao
Filippo

 Mi sapete aiutare?
Se sia sotto Windows, prova "dir /b nomedir > dir.txt", puì
std::getline per leggere il file dir.txt.
--
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
Newsgroup: it.comp.lang.c++
Titolo: Iostream e ambiente di sviluppo

Salve a tutti,
nell'ultima settimana ho fatto un po' di lurking ed ho imparato parecchie
cose.
Questo e' il primo mex che vi posto e, visto che non ho visto altri con il
mio problema, vi propongo le mie perplessita'.
La prima : ho sempre programmato in cpp sotto DOS ed i miei programmi sono
sempre funzionati (a volte a fatica ;-P) ma cmq mi sono sempre fatto quello
di cui avevo bisogno.
Da poco ho iniziato ad usare il VC++ e mi sono imposto di convertire i miei
programmi sotto WIN32.
So che per far funzionare un programma e' necessario dichiarare un WinMain
al posto della main ma, non riesco a compilarlo (se mi date gia' degli aiuti
qua fatelo liberamente).
Mi sono visto un po' di MFC (ci sono cose che me le fanno odiare) cmq ho
notato che se creo una classe derivata da CWinApp mi levo dalle scatole il
problema precedente visto che WinMain la inizializzano le classi con
l'initinstanche.
C'e' cmq un problema ossia la libreria dell'iostream (quando includo
afx****.h) che fa conflitto. E' una cosa tipo conio.h? Cmq soluzioni, plis
;-)))
Altro problema e' la scelta dell'ambiente di sviluppo : ho appena iniziato
ad usare il VC ma vedo che ci sono molte cose che fanno conflitto e non so
esattamente quanto derivi da me e quanto dal framework, alcuni mi hanno
fatto presente di usare il BC ma non l'ho e vorrei qualche parere su come
sia e su come reperirlo (comprarlo o scaricarlo?). Come se non bastasse poi
e' venuto un mio amico che mi ha detto : "guarda il Code Warrior, e' bello
funzionale e fa tutto ..."; ma non mi ha mica detto niente riguardo a
compatibilita' e a qualche altro dato tecnico .... l'animale ;-P
Cmq mi scuso per la lunghezza del post e ringrazio anticipatamente chiunque
mi voglia rispondere.
--
                                        Farewell my friends
                                              Virgo

 wrote in message 7n790k$rpv$1...@serv1.iunet.it...

Se hai fino ad ora fatto programmi per DOS, penso che il modo migliore per
iniziare con Win32 e VC sia fare programmi di tipo Console:
il programma ha esattamente la stessa struttura di uno per dos (solo in modo
testo pero'), si usa normalmente il main (niente WinMain e CWinApp). Si
hanno pero' tutti i vantaggi dell'ambiente a 32 bit (memoria non piu'
limitata, modello flat) e si possono anche chiamare le funzioni dell'API di
Win32 che non riguardano esplicitamente le finestre.
Se poi vuoi iniziare a fare programmi GUI (graphic user interface), cioe'
con le finestre, la strada migliore e usare le API di Win32 (con WinMain per
intenderci).
MFC e' una cosa molto potente, pero' purtroppo, piu' che ad una libreria e'
simile ad un libro di incantesimi, cioe' e' strutturato piu' per i vari
wizard (maghi) che ci sono nel Visual Studio che per il normale
programmatore.
Per quanto riguarda l'ambiente di sviluppo ho installato e usato senza
problema VC2,VC4,VC5,VC6.
Ho usato anche il BC4.5, che propone un ambiente piu' protetto e chiuso, ma
fa un po' le cose a modo suo.
In particolare, volendo usare OLE, ActiveX,COM, utili soprattutto per
collegarsi ai database MDB e' meglio usare VC.
Newsgroup: it.comp.lang.c++
Titolo: Copia tra oggetti

Ho un problema di questo tipo:
class A:COblist {}
class B:A {}
Qualcuno ha un'ide di come posso creare un oggetto di tipo B ricavandolo
da un oggetto di tipo A, di cui ovviamente non conosco a priori i
componenti?
La lista è una lista di puntatori ad oggetti diversi tra loro e può puntare
ad altre
liste complesse.
Grazie
Ellebi

 componenti?
Con un costruttore come 
class B : A {
  B(const A & a) : A(a) {}
};
Che usi cosi':
int main() {
  A myA;
  B myB = myA;
}
Se non e' questa la risposta, spiega meglio la domanda.
Ciao,
Nicola

 ha scritto nel messaggio
news:JdE18.2401$RQ5....@news1.tin.it...
: Ho un problema di questo tipo:

:
:

Newsgroup: it.comp.lang.c++
Titolo: Help! Comando clrscr ( )

Salse mi chiamo Paolo e sono un neofita del linguaggio C++ , ho un piccolo
problema ,dovrei  far cancellare una matrice per poi scriverne un'altra nel
medesimo posto, so che si potrebbe fare usando il comando clrscr ( ) , ma
purtroppo non so cone usarlo. Mi farebbe molto piacere se potreste darmi una
mano, GRAZIE!
  Paolo

clrscr cancella il contenuto della consolle..... non é una funzione
standard
se devi cancellare il contenuto di una matrice usa memset (mem.h o
string.h)
memset(void *, size, value)

Newsgroup: it.comp.lang.c++
Titolo: Vi è mai capitato?

Ancora io, purtroppo.
Ho un problema col linker. Io credo di aver includo tutti i files .cpp
(rigorosamente compilati) che formano in sorgente per il mio eseguibile.
Ho cosi creato il progetto con "new... project..." ed ho visualizzato
l'albero dei files che compongono il mio sorgente.
Stranamente ottengo errori del tipo:
Error:  Error: Unresolved external 'packet::packet()' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\TRANSMITTED_PACK.OBJ
Error:  Error: Unresolved external 't_sack_pack::t_sack_pack()' referenced
from D:\LA_MIA_TESI\MY SIMULATOR\TX_BUFFER.OBJ
Error:  Error: Unresolved external 'sack_packet::~sack_packet()' referenced
from D:\LA_MIA_TESI\MY SIMULATOR\CHANNEL.OBJ
Error:  Error: Unresolved external '_retr_buffer' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\SACK_BUF.OBJ
Error:  Error: Unresolved external '_router_f' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\RETR_TABLE.OBJ
Error:  Error: Unresolved external 'Router_b::Discard_dummy()' referenced
from D:\LA_MIA_TESI\MY SIMULATOR\ROUTER.OBJ
Error:  Error: Unresolved external '_results' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\ROUTER.OBJ
Error:  Error: Unresolved external 'Retr_buf::~Retr_buf()' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\RETR_TABLE.OBJ
Error:  Error: Unresolved external 'BUF_RX::BUF_RX()' referenced from
D:\LA_MIA_TESI\MY SIMULATOR\RECEIVER.OBJ
Error:  Error: Unresolved external 'Router_b::Transmit(double)' referenced
from D:\LA_MIA_TESI\MY SIMULATOR\MAIN.OBJ
Ho dato una occhiata su "Thimking in C++" ed ho trovato:
-------------
Some older linkers won't search object files and libraries more than once,
and they search through the list you give them from left to right. This
means that the order of object files and libraries can be important. If you
have a mysterious problem that doesn't show up until link time, one
possibility is the order in which the files are given to the linker.
-------------
Mi chiedo se il Borland 5.02 linker fa parte di questi "vecchi" linkers..
Proverò  a scaricarmi la 5.5... non ne posso più....
Bye,
Sebastiano

Proverò  a scaricarmi la 5.5... non ne posso più....
Devi creare un nuovo file ilink32.cfg, che contenga anche il path degi
obj del tuo progetto, sostituire quello esistente, con backup, e
riprovare.
Di solito funziona.
Anche con il 5.5 avrai problemi di questo tipo.
-- 
DGP85
http://daps.cjb.net/
No HTML or Binaries with this address
Newsgroup: it.comp.lang.c++
Titolo: errore concettuale??

Ho un problemino che non mi fa andare avanti e non capisco dove stia...
Spero molto nel vostro aiuto...
Vi spiego: Con il borland c++ builder 3 ho creato una finestra
principale ed una finestra figlia. Nella finestra figlia ho poi inserito
un componente vcl chiamato "TStringGrid", che in
pratica e' una tabella.
Nella finestra principale ho messo un menu, e premendo su una voce del
menu, creo la finestra figlia in questo modo:
TFiglia *Figlia = new TFiglia(this);
e la visualizzo: Figlia->Show();
Fin qui, tutto ok.
Il problema e' che non riesco ad accedere alla tabella con funzioni
esterne a quelle della
finestra figlia (che contiene la tabella, che ho chiamato StringGrid).
Ogni tentativo produce errori di violazione di accesso.
Ad esempio, se dentro alla funzione OnCreate della finestra figlia
scrivo
StringGrid->Cells[0][1]="ciao";
tutto funziona bene.
Ma se in una funzione esterna qualunque scrivo
StringGrid->Cells[0][1]="ciao"; il compilatore giustamente mi dice
"cos'e' StringGrid ??"
e quindi devo scrivere Figlia->StringGrid->Cells[0][1]="ciao";
Il compilatore compila,  ma se eseguo si blocca tutto e mi dice "errore
, violazione di accesso...."
probabilmente e' una cosa banale, ma io non la so....
scusate l'ignoranza,
Alberto



Newsgroup: it.comp.lang.c++
Titolo: disegnare un ceecdhio

Ciao a tutti, avrei bisogno di aiuto: sto preparando un piccolo programmino
in c++ per un esame dove occorre l'utilizzo di grafica; tutto il materiale a
mia disposizione e per ambiente linux, mentre io vorrei farlo funzionare
anche su windows. Dal momento che non mi occorre approfondire questa parte
del c++ mi farebbe molto comodo un piccolo esempio di inizializzazione della
grafica e la funzione che disegna un cerchio. In rete ho trovato dei codici
che utilizzano la libreria graphics.h e che inizializzano la grafica in
questo modo:
gdriver = DETECT;
initgraph(&gdriver, &gmode, "");
Oppure:
int B,A=DETECT;
initgraph(&A,&B , "c:\\tc\\bgi");
Ma il compilatore (DJGPP) non riconosce DETECT e initgraph.
In pratica devo solo disegnare dei cerchi in determinate posizioni x,y....
Grazie.
Manuele.

 initgraph(&gdriver, &gmode, "");
l'argomento da te trattato non ha nulla a che fare col C++ .. cmq mi pare
che in windows non
ci sia niente da inizializzare.. č tutta grafica!
antonio
Newsgroup: it.comp.lang.c++
Titolo: In vector come si ottiene...

Salve a tutti,
in un vector esiste un metodo che dalla posizione (intero) ottiene il
corrispondente iterator e viceversa?
Es.
-------------------------------File.cpp-----[definitions]------
#include <stdio>
#include <stdlib>
#include <iostream>
#include <vector>
#include <algoritm>
#include "myclass.h"
typedef vector <A> my_vector;
typedef my_vector:: iterator Iter_vector;
int main(){
my_vector mio_array;
for(int i=0; i<10; i++)
    {
    mio_array[i].temperatura=20+0.5*i; // temperetura media al suolo in
primavera in °C
    mio_array[i].altezza_localita_dal_suolo=1000-50*i;  // altezza in metri
dal livello del mare
    /* ... */    // Altre variabili membro assegnate;
    }
int position;
Funzione_1(position);
/* ... */
return(0);
}
void Funzione(int &position){
Iter_vector iter;
if((iter=find(mio_array.begin();mio_array.end(); 22)!=mio_array.end())
    {
    posizione=metodo_ritorna_nell_array_a_partire_da_iter(iter);
    cout<<" Posizioni nell' array di località con temperatura"<<
                " superiore a 22 °C in primavera"<<endl;
    for(int I=posizione; I<(int)mio_array.end(); I++) cout<<I<<endl;
}
class A{
            public:
                 float temperatura;
                 int  altezza_localita_dal_suolo;
            /* ... */
        }


Perchè non provi ad utilizzare operator[] che restituiisce il valore associato
e fai li un test sul valore?
ciuao Nicola Z.

Dato ad es:
vector<int> v(10);
vector<int>::iterator i1 = v.begin() + 3;  // iteratore corrispondente a
v[3]
int i2 = static_cast<int>( i1 - v.begin() );  // i2 vale 3
Ciao,
Nicola

Grazie Nicola,
pensavo fosse più complicato. Questo è possibile perchè l'iterator per il
tipo vector consente la lettura e scrittura con acceso casuale, vero?
Ho visto che esistono diversi tipi di iterator ma non ho ancora capito bene
come usarli...
Bye,
Sebastiano

Esatto.
Ciao,
Nicola
P.S.: 
http://www.sgi.com/Technology/STL/

Newsgroup: it.comp.lang.c++
Titolo: controllo su porta

ciao, devo realizzare un prog che controlli se ho delle richieste da
qualcuno su  una determinata porta del mio pc,
(una specie di rudimentale firewall solo per una posta che imposto io).
sapete aiutarmi?
mi basta almeno sapere che funzioni e librerie posso usare...
grazie anticipatamente..
ciao

- Linux or Win32 ?
- TCP or UDP ?
- cosa e una richiesta positiva ?
- Una richiesta o motlo dipiu ?
Puoi usare CommonC++ ?
 
http://www.gnu.org/software/commonc++/
o ACE ?
 
http://www.cs.wustl.edu/~schmidt/ACE.html
 
Non credo che capisco il problema.

Newsgroup: it.comp.lang.c++
Titolo: 3 modi per far soldi col telefonino__ !!

Guadagni col telefonino da record!!!! (
fad...@supereva.it
)
Conosco ben 3 società che ci pagano per ricever spot promozionali sul
telefonino, si hai capito bene CONOSCO TRE MODI PER RICEVERE MESSAGGI
PROMOZIONALI SUL TELEFONINO !!
se sei interessato mandami una mail con il soggetto:
Guadagni con il telefonino? (o soggetti simili)
Ti invierò poi tutte le informazioni necessarie.
P.S.: se vuoi conoscere anche i modi per guadagnare navigando, basta che mi
richiedi espressamente le informazioni: sarò ben lieto di mandartele (ne
conosco più di 20).
Per info: 
fad...@supereva.it

 wrote in message
8kl5uq$71o$1...@sirmdpsin17.inwind.it...


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

Salve a tutto il NG
essendo un neofita alle prese col c++ builder 3
sto realizzando un programma che usa TeeChart 3.0
ma non sono riuscito a trovare documentazione in merito.
Se qualcuno di voi mi potesse spedire un codice di
esempio con l'utilizzo di teechart,dichiarazioni,
cio' che bisogna includere..etc etc
giene sarei infinitamente grato. ecco la mia email:
scu...@freemail.it
oppure rispondete sul NG...
grazie ancora...

 wrote in message
8gose8$9kd$1...@lacerta.tiscalinet.it...



metti nel .h 
     TChart *thischart;
poi nel codice associato ad un evento:
    thischart = new TChart(this);
    thischart->Parent=this;
    thischart->Visible=true;
    thischart->Height=50; thischart->Width=50;
    thischart->View3D=false;
    thischart->Title->Visible=false;
    //thischart->Top=thiselem->PosY; thischart->Left=thiselem->PosX;
    thischart->Top=30; thischart->Left=50;
    thischart->MarginLeft=0; thischart->MarginRight=0;
    thischart->MarginTop=0; thischart->MarginBottom=0;
    thischart->AxisVisible=false;
e cosi via...
CMq spizzati l'esempio ceh ce nella dir examples
-----------------------------------------
La vita e' l'opera di un regista mediocre
e di un cattivo sceneggiatore
Newsgroup: it.comp.lang.c++
Titolo: it.comp.programmare.win32

Vi annuncio con grande piacere che e' stato aperto il newsgroup
it.comp.programmare.win32,
quindi tutte le questioni sulle win32 e MFC dovranno essere postate su
questo gruppo e non piu' su
it.comp.lang.c++ e it.comp.lang.c.
Saluti Antonio.


A questo punto si potrebbe modificare il manifesto del gruppo,
e togliere la parte relativa a win32  (dal manifesto attuale 
sembra che il C++ sia un linguaggio specifico di windows).
	Mauro

Spero si possa parlare anche della VCL di Inprise e non solo delle MFC.

Spero si possa parlare anche della VCL di Inprise e non solo delle MFC.
Veramente....

E' stato effettivamente attivato? Io nel server Flashnet non lo vedo.
Grazie, saluti
Paolo

 E' stato effettivamente attivato? Io nel server Flashnet non lo vedo.
Di solito, prima che un nuovo gruppo sia disponibile su tutti
i server ci vuole un po' di tempo.
	Mauro



Adesso e' attivo, glielo ho appena detto...
--
(o-  T | Unix is simple and coherent , but it takes a genius  to understand
//\  U | and appreciate  its simplicity .
V_/_ X |                                    Dennis Ritchie .
email: r.salmaso (at) 
flashnet.it
 | salmaso.raffaele (at) 
iname.com

Io nel server Flashnet non lo vedo.
Su Tin c'e'
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org

Newsgroup: it.comp.lang.c++
Titolo: [BCBuilder] aiuto su TImage e jpg

Ciao a tutti,
 uso il borland builder 4 e con stupore mi sono accorto che non supporta il
formato grafico 'jpg', mi sapete indicare dove reperire un componente che lo
supporti o eventualmente qualche stringa di codice per per convertire un jpg
in bmp e vice versa?
Ho già trovato qualcosa in rete ma non riesco proprio a farlo digerire al
compilatore.
La versione 5 lo supporta? e com'è possibile che ci sia stata questa
dimenticanza?
Mieru

 formato grafico 'jpg', mi sapete indicare dove reperire un componente che lo
Mi rispondo da solo, non è documentato ma lo supporta, basta includere
"jpeg.hpp".
Me ne sono accorto perché ho trovato una "jpg patch" per la versione 3 e
cercando di inserirla andava in conflitto con qualcosa che già c'era.
Questo qualcosa era quello che cercavo.
Scusate il disturbo.
Mieru

 cercando di inserirla andava in conflitto con qualcosa che già c'era.
Dove posso trovare questa "jpg patch" per la versione 3?
Ti ringrazio                         --- Mauro ---

 ha scritto nel messaggio
news:F2u%5.133279$hk4.4...@news.infostrada.it...

La spacciano sul sito della borland:
http://www.inprise.com/devsupport/bcppbuilder/file_supplements.html
questo è il link diretto:
http://www.inprise.com/devsupport/bcppbuilder/TJPEG.ZIP
Qui invece trovi un ottimo how-to per istallarla:
http://www.bytamin-c.com/HowTo/TJPEG.htm
Mieru
Newsgroup: it.comp.lang.c++
Titolo: dove trovare qualcosa sul merge sort?

dove posso trovare qualcosa che mi spieghi per bene il merge sort? AIUTO!!!

 dove posso trovare qualcosa che mi spieghi per bene il merge sort? AIUTO!!!
Knuth - The art of computer programming
Cormen et al. - Algorithms
Sedgewick - Algorithms in C
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

Ciro??

Newsgroup: it.comp.lang.c++
Titolo: AIUTO TURBO C+ COMPILER

Scusate l'intrusione non son o un programmatore esperto di c+, ma devo
assoltamente fare un favore ad una ragaza e credo che solo voi potete
aiutarmi. In sostanza mi serve solo un compiler c+ ovvero sapere se si può
scaricare da qualche parte.
Vi ringrazio per l'attenzione
ULIX

 ha
scritto:

Puoi provare a leggerti le f.a.q. di 
www.programmazione.it
cmq io posso consigliarti il DJGPP per dos
http://www.delorie.com/djgpp
e il borland 5.5 per win32 
www.borland.com
 (lo trovi nella comunity o
qualcosa del genere)
approposito... si chiama C++ =)

Newsgroup: it.comp.lang.c++
Titolo: Differenza fra static_cast <tipo> (var) e (tipo) var

Che differenza c'e' fra utilizzare
static_cast <tipo> (var) 
e 
(tipo) var
Grazie
Ciao

 (tipo) var
Nessuna.
-- 
Per l'e-mail rimuovere la frase in maiuscolo e gli underscore.

 Nessuna.
Scusa?!?!?!
Non e' assolutamente vero. In certi casi non c'e' nessuna differenza, in
altri ce ne puo' essere.
Prova a scrivere la seguente:
int*a;
char*b;
b=(char*)(a); // va
b=static_cast<char*>(a); //gcc (almeno in alcune versioni e/o con alcune
opzioni) si rifiuta di compilarla
Dice infatti (giustamente) che (char*)a non equivale a
static_cast<char*>(a), ma a reinterpret_cast<char*>(a).
Solo per fare un esempio (un altro potrebbe essere con const e
const_cast).
Una discussione piu' ampia e' stata fatta di recente ed allora scrissi
un messaggio piu' completo proprio su questo newsgroup, prova a
cercarlo.
 bye
	av.

a parte quello che ti hanno detto, io sono arrivato alla conclusione
che è opportuno utilizzare il cast di tipo c
(tipo) var
soltanto per castare da un tipo primitivo all'altro, in assenza
oltretutto di puntatori e riferimenti
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo
Newsgroup: it.comp.lang.c++
Titolo: aiuto esame per amico di Capitan Catarro

ciao sono Alessandro , il tipo di ingegneria informatica coi capelli
lunghi e che deve pure lui fare il progetto del Gioco dell'oca
volevo chiedere all'amico di Capitan Catarro , quello che ha già aftto
il gioco dell'oca, alto biondo con gli occhiali (non mi ricordo il suo
nome, scusami tanto ma lo sai che sono rincoglionito) se me lo poteva
mandare al mio indirizzo e-mail   
sic...@ciaoweb.it
mi servierebbero tutti i file, non solo l'eseguibile , devo capire la
struttura del programma, mi servirebbero, per favore, tutti i
sorgenti....
non li copio ovviamente, non sono coì stronzo, e stupido (se quel
bastardo di italiano mi tana mi si incula)
mi saresti di grande aiuto
Grazie    Ale
sic...@ciaoweb.it

 ha scritto nel messaggio
news:3A951F1F...@hotmail.com...

io non credo che questo NG sia nato per questo ( negli ultimi 15 giorni
sembra di stare al quarto d'ora accademico del primo anno di non so che
facolta' ... mah ), cmq ...e' solo un opinione e, di questo sono sicuro,
anche l'ultima.
fabio

Newsgroup: it.comp.lang.c++
Titolo: Stampa Lista

Chi mi sa suggerire come posso scrivere una funzione che stampi una lista in
ordine inverso dall'ultimo al primo elemento.
Saluti
Ciao

 ordine inverso dall'ultimo al primo elemento.
std::copy(list.rbegin(), list.rend(),
std::ostream_iterator<elem>(std::cout, " "));
(a mente).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Alan Turing thought the whole life about the question of whether
machines can think; a question of which we now know that it is
about as relevant as the question of whether submarines can swim.
                -- Edsger W. Dijkstra

ordine inverso dall'ultimo al primo elemento.
Intendi una lista standard ? Le liste definite con std::list sono
bidirezionali e quindi basta qualcosa come:
  void RevPrint(const std::list<int>& l)
  {
    std::list<int>::const_iterator i=l.end(),b=l.begin();
    while (i!=b)
    {
      std::cout << *--i << '\n';
    }
  }
Supponendo invece che la lista sia monodirezionale una alternativa
e' una funzione ricorsiva:
   void RevPrintElement(ListElement *e)
   {
     if (e)
     {
       RevPrint(e->next);
       std::cout << e->item << '\n';
     }
   }
   void RevPrint(const List& l)
   {
     RevPrintElement(l.first);
   }
Un'altra possibilita' e' invertire la lista e stamparla mentre
viene invertita una seconda volta...
   void RevPrint(const List& l)
   {
     ListElement *h=0,*p=l.first;
     // Ribalta temporaneamente la lista
     while (p)
     {
       ListElement *np=p->next;
       p->next=h; h=p; p=np;
     }
 
     // Ribalta ancora stampando i valori
     p=h; h=0;
     while (p)
     {
       std::cout << p->item << '\n';
       ListElement *np=p->next;
       p->next=h; h=p; p=np;
     }
   }
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c++
Titolo: [OT] gmail... non so più che farmene

Ragazzi so che non interesserà a nessuno.....
comunque ho 70 inviti per aprire un account di posta GMAIL.
chi fosse interessato mi risponda non qui ma mi mandi un messaggio
alla mia e-mail .
specificando la vostra e-mail attuale.
Ciao a tutti.

 specificando la vostra e-mail attuale.
Se facessi lo spammer, questo sarebbe perfetto
-- 
int

 comunque ho 70 inviti per aprire un account di posta GMAIL.
http://isnoop.net/gmailomatic.php
bye,
Major ;-)

Newsgroup: it.comp.lang.c++
Titolo: template e puntatore a puntatore

Ciao a tutti.
Avendo un funzione template che prende come argomento un puntatore ad un
puntatore ad un tipo generico X, che sintassi si usa per accedere al tipo X?
In pratica:
template<typename T> void func(T* arg){
  T* p_ptr = arg;
  T ptr = *p_ptr;
  Y value = *ptr;  // cosa ci va al posto di Y?
}
int main(){
  short value = 123;
  short *ptr = &value;
  short* *p_ptr = &ptr;
  func<short*>(p_ptr);  //esempio di utilizzo con T=short*
}
Dopo innumerevoli prove sono riuscito a scoprire che se dentro 'func' scrivo
  int sz = sizeof(*T());
ottengo il giusto risultato (2 nell'esempio), ma da questo non sono riuscito a
capire come definire il tipo di 'value' dentro 'func'.
Grazie,
Enzo

 template<typename T> void func(T* arg){
Perché non lo definisci come:
template <typename T> void func(T **arg) ...
?
E.

 ?
Giusto!
Mi ero intestardito per via di quel cast (è un cast?)
  int sz = sizeof(*T());
che risultava corretto, e pensavo che se ne potesse ricavare un costrutto che
consentisse di dichiarare una variabile di tipo opportuno.
Grazie.

template<typename T>
void func(T* arg)
{
 // nel caso chè arg sia un tipo predefinito lo puoi visualizzare in questo 
modo (int, short, double etc...)
 std::cout << **arg << std::endl;
 **arg = 321; // modifica il suo valore
 std::cout << **arg << std::endl;
}
int main()
{
 short value = 123;
 short *ptr = &value;
 short **p_ptr = &ptr;
 func<short*>(p_ptr);  //esempio di utilizzo con T=short*
}
ciao.

Newsgroup: it.comp.lang.c++
Titolo: Project File(*.mak) di VC++ a Borland C++ Builder

Esiste qualche utility per importare i Project File di  Visual C++ in
Borland C++ Builder o per renderli utilizzabilii con il medesimo?
Grazie a chi mi fornirą il suo prezioso aiuto.
Rhino

In BC++B ver. 4 esiste un'utility per importare i file di progetto
di VC++.
L'ho usata solo una volta, ma con scarsi risultati.
Fausto
