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

1)Quale la diff tra usare l'algoritmo generico back_inserter() e la funz
push_back di un ipoteteco vector<>????
2)Le eccezzioni, si devono usare o sono inutili???
Tnk
-- 
Kleidemos
C++ Programmer
kleidemo...@altervista.org

 2)Le eccezzioni, si devono usare o sono inutili???
Le eccezioni sono inutili. Ovviamente. Cosa ti ha mai fatto pensare il 
contrario????
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 contrario????
LOL
Guarda che se non ci metti la faccina rischi che ci creda!
^_^
Per Kleidemos:
Le eccezioni bisogna usarle se e quando servono.
Se usate sempre rischiano di rallentare il codice, ma spesso risultano
utili.
Il trucco è come sempre quello di conoscere bene tutti gli strumenti messi a
disposizione ma usarli solo quando ce n'è bisogno.

 ^_^
Quoto. Stavo gią per abbaiare....
LOL

 LOL
Mamma mia, non credevo di avere un'ironia cosi' eccessivamente raffinata :)


Newsgroup: it.comp.lang.c++
Titolo: Aiuto, più indirizzi ip...

Se ho un computer non connesso faccio
gethostname(nome,lung);
gethostbyname(nome) ed ottengo il normale 127.0.0.1
se il pc si connette ad internet ottengo invece 62.33.44.55 che il
nuovo ip assegnato dal provider.
se il pc è in una rete lan ottengo 192.168.333.444 che è l'ip locale
nella lan.
E se invece il pc fosse connesso tramite scheda di rete alla lan e
contemporaneamente ad internet tramite modem (quindi coon 2 ip) quale
indirizzo otterrei?
E c'è un modo per saperli tutti e due?
(non ho la possibilità di provare questa ipotesi... se potete
aiutarmi)
Grazie.

"Vinz486" <x_vincenzo_x_tarricone_x_@_x_inwind.it_x> ha scritto nel
messaggio news:ar5lpa$p8h$1...@newsreader.mailgate.org...

Io ho una scheda di rete alla quale, attualmente, non e'
connesso alcun computer.
A questa ho assegnato l'IP 192.168.0.1.
Naturalmente disponogo di una connessione dial-up.
Se mi mandi il codice posso fare io la prova,
altrimenti domani cerchero' di scriverlo io.
Attenzione: su questo newsgroup sei OT,
  meglio se posti su: it.comp.programmare.win32
email: 
supe...@infinito.it

  meglio se posti su: it.comp.programmare.win32
Ho postato, ma nessuno ha risposto.
Anzi se guardi, il post successivo al mio è il manifesto (come per
dirmi sei OT...)
Grazie lo stesso. Ciao.

 Grazie lo stesso. Ciao.
ripensandoci forse eri OT anche su win32,
il tuo post e' da classificare come un problema
di reti piu' che di programmazione win32.
Fammi sapere i risultati delle prove,
meglio in privato perche' se continuiamo
qui qualcuno prima o poi si inca**era'
Ciao.
Newsgroup: it.comp.lang.c++
Titolo: C++ senza puntatori

  Manca una settimana al concorso, e non ho ancora studiato i
puntatori :-) Ci daranno un programmino da svolgere, che probabilmente
includera' delle matrici. Si possono trattare i vettori e le matrici
in C++ senza puntatori? E' chiaro che dell'ottimizzazione del codice
non me ne frega nulla. 
  Grazie.

 in C++ senza puntatori? 
Si può, sempre che i tuoi docenti ti consentano di usare std::vector.
Max

 includera' delle matrici. Si possono trattare i vettori e le matrici


Newsgroup: it.comp.lang.c++
Titolo: Alcune domande sul c++

Salve,
 ho letto da qualche parte che utilizzare le funzioni malloc e calloc in c++
è un errore. E' vero? Che malloc sia eventualmente sostituibile con "new"
ok, ma se volessi il buffer già azzerato?
E' vero che in c++ il cast non è obbligatorio? Nei listati che ho scritto
sino ad ora, il VC++ me lo ha sempre richiesto.
 Byez

ho scritto sino ad ora, il VC++ me lo ha sempre richiesto.
In C il cast da void * a qualunque pointer e' implicito.
Questo non e' vero in C++ dove il cast deve essere richiesto
in modo esplicito dal programmatore.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

E' vero che in c++ il cast non è obbligatorio? 
Hmmm... e' + probabile il contrario.  Dipende, poi, che tipo di cast.
Il C++ si formalizza molto nel controllo dei tipi, a differenza del C,
quindi ci sono molte + occasioni in cui il cast e' obbligatorio
rispetto al vecchio linguaggio.
--
Walkie...@Libero.It (ICQ# 8143647)

 il buffer già azzerato?
Attenzione che l'espressione new nome_classe chiama anche il costruttore
della classe, cosa che con malloc non avviene.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Input a tempo

Salve,
e' possibile mettere l'input a tempo? In pratica, se entro un tot 
secondi non c'e' input, il programma deve proseguire e considerare come 
input qualche dato predefinito oppure nessun input.
Grazie
--
Noixe
Inviato da 
www.mynewsgate.net

 input qualche dato predefinito oppure nessun input.
Nessun modo standard (che io sappia) - devi guardare cosa ti offre il 
tuo sistema operativo.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

Newsgroup: it.comp.lang.c++
Titolo: [OT] Implementazione di una interfaccia COM

In Visual Studio .NET come faccio a implementare l'interfaccia
IDeskBand visto che nella finestra di dialogo che viene visualizzata
dopo aver fatto sulla classe "Aggiungi"->"Implementa Interfaccia..."
non la trovo?
Ho usato anche OLE/COM Object Viewer e tra le interfaccie ho trovato
IDeskBand ma quando cerco di caricare il file (nella finestra di
dialogo detta prima) mi dice che non c'è nessuna interfaccia?
Aiuto
Grazie

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
		server 
newsgroups.borland.com
 (prevalentemente in 
		inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: std::map e thread, perché non funziona?

Ho un problema nel passare una std::map a una thread function.
Questo funziona:
 
typedef std::map<int, int> MyMap;
 
void main()
{	
	MyMap* myMap =  new MyMap();
 
	// inizializa con qualche valore
 
	AfxBeginThread( MyThreadFunc, (LPVOID)myMap ); 
 
}
 
Questo non funziona, il parametro passato ï¿œ inutilzzabile
 
void main()
{	
	MyMap myMap;
 
	// inizializa con qualche valore
 
	AfxBeginThread( MyThreadFunc, (LPVOID)&myMap ); 
 
}
 
UINT MyThreadFunc( LPVOID lparam )
{
	MyMap* myMap = (MyMap*)lparam;
	std::cout << lparam.size( ); // per esempio
}
 
come mai?
 


 
 
 
 
 > std::cout << lparam.size( ); // per esempio
 
Perchè lparam.size() ?
 
 
 

 Questo non funziona, il parametro passato è inutilzzabile
 
Cosa vuol dire "non funziona"?
 
Non conosco la libreria che stai usando, ma se va in crash il programma o non 
fa quello che ti aspetti probabilmente è perchè main() ritorna prima che il 
thread che hai staccato possa terminare o addirittura iniziare.
 
Perchè non usi la libreria standard per i thread anche solo per riscrivere 
l'esempio e rendere così chiaro a un pubblico più vasto quello che vuoi fare?
 


 
 
-- 
1) Resistere, resistere, resistere.
2) Se tutti pagano le tasse, le tasse le pagano tutti
Soviet_Mario - (aka Gatto_Vizzato)
 


Difficile a dirlo cosi' su due piedi...
Afxecc... e' tutta roba non standard, quindi probabilmente non troverai 
risposte qui; cambia libreria o spostati su qualche gruppo piu' 
appropriato (it.comp.win32?).
 
Probabilmente la differenza sta nel fatto che, nel secondo caso, myMap 
e' sullo stack; non so pero' se questo basti a renderlo inaccessibile 
all'altro thread o se, come diceva Luca, viene distrutto troppo presto.
Non conosco infatti la libreria AFX (ne' sufficientemente a fondo il 
sistema operativo che penso usi).
 
  bye
	av.

 Questo funziona:
 
Domande sulle MFC sono OT, e non c'è motivo per pensare che il thread 
sia realmente creato visto che all'istruzione dopo il programma termina.
 
L'esempio poi è sintatticamente sbagliato, mi meraviglio che compili.
Se compila, cambia compilatore.


 
in effetti a meno di una join implicita nel funzionamento
di quella libreria, non capisco davvero come possa
funzionare...
 

Il 07/05/2013 14:45, _merlinO_ ha scritto:

Non funziona perchï¿œ la variabile myMap ï¿œ locale alla funzione main e la 
funzione MyThreadFunc viene chiamata in maniera asincrona, quindi nel 
tuo caso dopo che la funzione main ï¿œ terminata e quindi l'area di 
memoria alla quale si riferisce la variabile myMap distrutta.
Devi attendere la fine del thread prima di terminare la funzione main.
Ad esempio, puoi scrivere:
 
void main()
{	
	MyMap myMap;
 
	// inizializa con qualche valore
 
	CWinThread* pThread = AfxBeginThread( MyThreadFunc, (LPVOID)&myMap );
 
	// attende il termine del thread
	WaitForSingleObject(pThread->m_hThread, INFINITE);
}
Newsgroup: it.comp.lang.c++
Titolo: array dinamici

Salve,
c'è qualcuno che sa come come creare  array dinamici di puntatori costanti?
Grazie

peppus wrote:

vector<const void*> ?
(Oppure list, a seconda delle esigenze)
-- 
LF

LF wrote:

non credo const void * soddisfi il requisito di Assignable per i 
container std::vector ed std::list.
-- 
Nuoto e me ne frego!

 container std::vector ed std::list.
Certo che lo soddisfa. Forse stavi pensando a 'void * const', che un tipo
diverso.
Ora, bisogna vedere cosa intendesse l'OP. La risposta che ha dato LF riguarda i
puntatori a un T costante (const T*), mentre l'OP parlava di un puntatore
costante (T *const).
Max

 costante (T *const).
Eh sě, io intendevo quello. Se un puntatore deve essere costante non puň 
essere Assignable (mi sono salvato in corner, fiuuuu :-))

Newsgroup: it.comp.lang.c++
Titolo: Chiarimento

Ma in questo newsgroup l'argomento è il C++ standard oppure c'è spazio per
tutta una serie di cose molto interessanti che non hanno però niente a che
vedere con il C++ standard?
Ve lo chiedo perchè non so se occorre rispondere a domande o richieste
palesemente OT
Grazie
Sini Andrea

 ha scritto nel messaggio
news:vfiRa.78265$qa5.1...@news2.tin.it...


 ha scritto nel messaggio
news:vfiRa.78265$qa5.1...@news2.tin.it...

La prima che hai detto. Però, dal momento che l'80% dei post è generalmente
OT, secondo me sarebbe bene per lo meno rispondere rimandando ad un NG
attinente, perché in questo modo quelli che prima di postare lurkano un pò
si rendono conto degli argomenti trattati.
Ciao

 La tua è maleducazione.
Non so se sia stata tu o io a fraintendere il tono del post di Andrea,
comunque ti informo che questo NG tratta il C++ standard, se avessi letto il
manifesto del NG (cosa che andrebbe fatta prima di postare su qualunque NG)
ne saresti stata al corrente.
Ciao

 La tua è maleducazione
Ma sei ubriaca?
E vedi di imparare a quotare. 
-- 
Luc.

 ha scritto nel messaggio
news:3NjRa.181369$lK4.5...@twister1.libero.it...


...

Mi fa piacere vedere che qualcuno ancora si pone questi problemi. Come
descritto dal manifesto del newsgroup, che puoi leggere qui:
http://www.news.nic.it/manif/it.comp.lang.c++.txt
Dopodiche', dal momento che il gruppo non e' moderato, non c'e' modo
di bloccare i messaggi OT. Sta ai singoli decidere come comportarsi.
Un po' di tempo fa rispondevo a tappeto con un messaggio
standardizzato che indicava un certo numero di newsgroup alternativi.
Ciao,
Nicola

 La tua è maleducazione.
Come ho risposto ad Andrea, il newsgroup e' dedicato al linguaggio
standard e non ai vari tool e librerie. Il messaggio di Andrea mi pare
uno dei piu' beneducati che siano mai apparsi. Quello che e'
certamente maleducato e' postare messaggi OT.
Ciao,
Nicola

 Povero
Ho detto di imparare a quotare, altrimenti devi fare unsubscribe. E' la 
regola (non mia, ma di USENET). 
-- 
Luc.

 wrote in message
news:MPG.1980b1763...@tornado.fastwebnet.it...

Lasciamo in pace la Serbelloni Mazzanti Vien Dal Mare

...
Ringrazio quanti mi hanno attestato solidarietą. A riprova del fatto che non
sono maleducato, cara Silvana Vanoni Casellini, non ti ho risposto come
avrei probabilmente dovuto...
Sini Andrea
Newsgroup: it.comp.lang.c++
Titolo: Trovare un programma nella memoria

ciao a tutti.
conosco un po' di c++ e volevo fare una specie di trainer per un giochino
che ho fatto tempo fa in visualbasic.
io stavo pensando di cercare nella ram dove sono memorizzate le variabili
del giochino,e poi modificarle ma come faccio a trovarle??
grazie a chi mi risponde

 che ho fatto tempo fa in visualbasic.
Ciao.
Sei Off Topic qui: spostati su it.comp.programmare.win32.
Grazie.
Ciao!
-- 
---
*************** | Have you ever retired a human by mystake?
*** Azathot *** |
*************** | To contact me, ask me gently. Thanks.

> Sei Off Topic qui: spostati su it.comp.programmare.win32.
ok ho chiesto su it.comp.programmare.win32 ma perchè qui sono ot?non si
parla di c++?
a me interessava un comando che trovava l'indirizzo di una variabile esterna
nella memoria..
grazie comunque

> Sei Off Topic qui: spostati su it.comp.programmare.win32.
ok ho chiesto su it.comp.programmare.win32 ma perchè qui sono ot?non si


 esterna nella memoria..
Comprendo il tuo interesse, peccato che il C++ non abbia il concetto di 
"variabile esterna" (al limite, neanche di "indirizzo"). Inoltre, hai fatto 
riferimento esplicito all'ambiente Windows (Visual Basic): il C++ è un 
linguaggio indipendente dalla particolare piattaforma, quindi nell'altro NG 
troverai sicuramente una risposta migliore di quella che puoi avere qui.
Ciao.


Newsgroup: it.comp.lang.c++
Titolo: Drive memoria dos4wg per Zortech e Porting

Cerco drive memoria dos4wg per Zortech in dos,
perchè questa applicazione che sto' seguendo ha bisosgno di molta memoria, e
no riesto a fare il porting su Windows, a causa delle librerie a 16 bit
(Codebase).
Grazie   Mauro

 
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Remove ICE from e-Mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Newsgroup: it.comp.lang.c++
Titolo: Controllo run time array

C'e' un metodo in VC++ 6 di fare un controllo run-time che nel codice non si
riferisca ad elementi di array oltre le dimensioni dichiarati?
es.
int a[10];
a[25]=3;
Grazie, Gianluca

 ha scritto nel messaggio
news:aadro1$fv8$1...@lacerta.tiscalinet.it...

Puoi usare, invece degli array, gli std::vector, utilizzando il metodo
at(int) per accedere agli elementi, invece di operator[]. Il metodo at
lancia un'eccezione di tipo out_of_range se tenti di accedere ad elementi
fuori dai limiti degli array:
std::vector<int> vec(10);
vec.at
(20) = 0;    // lancia un'eccezione out_of_range
Ciao,
Cecco

 ha scritto nel messaggio
news:5tzy8.70332$vF6.2...@news2.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: "Subclassare" una dll

Mi piacerebbe sapere se c'e' un modo per creare una dll che faccia da
"schermo" ad un'altra senza dover ridichiarare tutte le funzioni.
In particolare vorrei creare una Kernel32 che, dopo aver intercettato
alcune chiamate, invia i messaggi alla dll originale.
E' possibile?
Grazie in anticipo.
Salvatore

 wrote:

Forse, con un bel drive a livello kernell. Auguroni vivissimi se ci
riesci (la documentazione del DDK e' quella che e').
(Elimina il papero per le repliche)

Salvatore
il pragma qui sotto dovrebbe (non l'ho mai utilizzato) fare in modo che la
funzione SomeFunc della DLL DllWork sia esportata come SomeFunc dalla tua
DLL.
// Function forwarders to functions in DllWork
#pragma comment(linker, "/export:SomeFunc=DllWork.SomeFunc")
Dovresti dichiarare un pragma per ogni funzione di KERNEL32 (puoi ottenere
l'elenco delle funzioni con DUMPBIN), tranne per quelle che vuoi
"subclassare" e poi sostituire in qualche modo la tua DLL alla Kenel32
originale (dopo adeguato backup!!) rinominando la ex-kernel come "DllWork".
Tieni presente che le funzioni esportate da kernel32 variano da versione a
versione (win '95, win NT e win OSR2).
---
Valter Minute
min...@fortech.it
www.fortech.it/english
---
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://gsanet.com/ntfiles/cmdl/download.cmdl?catagory=ScreenS&bbsfile=foyd11
.zip&ftppath=/pub/screens/
And ask me for the source code.

Newsgroup: it.comp.lang.c++
Titolo: OLE in VC++ 5.0

Buongiorno a tutti,
mi risparmio i commenti sull'ennesima catena inoltrata da tal marcus e
vengo subito al sodo:
Io non capisco niente di OLE e ho poca documentazione. (in pratica solo
i due volumi della MS riguardanti le classi e poco altro)
Volevo fare due applicazioni semplicissime che contenessero una gestione
degli appunti che fosse la più semplice e veloce possibile.
Ho trovato il modo utilizzando le classi COleDataSource per scrivere e
COleDataObject per leggere.
Ho però i seguenti problemi:
per scrivere uso la funzione membro di
COleDataSource::CacheGlobalData(...) seguita da
COleDataSource::SetClipboard(...).
In CacheGlobalData(...) bisogna passare tre parametri che definiscono il
formato degli appunti, l'handle alla zona di memoria contenente i dati
da memorizzare negli appunti e il formato dei dati.
SetClipboard(...) si occupa poi di mettere il tutto negli appunti.
Senza documentazione non so gestire una variabile HGLOBAL e, quindi, la
funzione CacheGlobalData()
Qualcuno è in grado di darmi informazioni ed esempi a riguardo???
Grazie in anticipo
Lorenzo
mach...@comm2000.it

degli appunti che fosse la più semplice e veloce possibile.
se vuoi una gestione molto semplice della clipboard non ti andare a
impelagare con OLE, usa le classiche funzioni della Clipboard:
OpenClipboard,SetClipboardData, ecc. con poche righe di codice puoi
aggiungere la gestione della clipboard ai tuoi programmi. In piu' se
le classi MFC che usi supportano la serializzazione puoi trasferirle e
rileggerle dalla clipboard senza aggiungere altro codice. 
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: nuova versione dev-cpp

Salve a tutti,
ho appena installato la nuova versione del dev-cpp( 4.9.7.0) rimpiazzando la
ormai datata 4.01, ma mi sono trovato un po in difficoltà per quanto
riguarda i nuovi standard del linguaggio, o probabilmente eventuali nuove
librerie standard. Infatti andando a compilare codici perfettamente
funzionanti con la 4.01 mi da errori.
Sapreste indicarmi quelle che sono le fondamentali nuove direttive(tipo se
si usa <iostream.h> o <stdlib.h>)? (male che vada ritorno al vecchio 4.01
:D )
grazie,
Paolo


Mi fai un esempio dove il Dev ti da' un errore che la vecchia versione non
ti dava?
Maurus

 > ormai datata 4.01, ma mi sono trovato un po in difficoltà per quanto


 }
Solita domanda... solita risposta:
#include <stdlib.h> // o #include <cstdlib>
#include <iostream>
int main ()
{
   std::cout<<"Codice di prova"<< std::endl;
   system ("pause"); // mettere std:: davanti se si usa <cstdlib>
   return 0; // non serve
}
--
Gerolamo


come ti è stato detto è sicuramente il metodo giusto, ma se devi mantenere
la compatibilità per qualche oscuro motivo puoi sempre inserire il nuovo
path degli header vecchi.
Questo magari puo esserti utile per includere altri header di lib
esterne,nelle opzioni del compilatore c'è il tag directory appunto per
queste cose(oppure anche le opzioni del progetto).
ciao :)

Grazie a tutti , mi adeguerň ai nuovi standard :)
Newsgroup: it.comp.lang.c++
Titolo: allocazione dinamica

ciao a tutti,
vorrei chiedervi se è possibile istanziare un array di struct il cui
tipo è definito a runtime, nell'esempio in basso ho definito 2 struct
node_a e node_b , e la funzione creaArray si occupa di creare un array
il cui tipo è definito in una stringa, la riga 15 è naturalmente
errata come puo' essere corretta?
Se puo aiutare potrei usare delle classi al posto delle struct
grazie
01#  typedef struct aTag
02#  {
03#    int a1;
04#    char a2;
05#
06#  } node_a;
07#  typedef struct bTag
08#  {
09#    char a1;
10#    char a2;
11#  } node_b;
12#
13#  void creaArray(char* tipo)
14#  {
15#  	tipo* B=(tipo*)malloc(10*sizeof(tipo)); 	//creazione a runtime
16#  }
17#
18#  int main()
19#  {
20#  	creaArray("node_a");
21#  	creaArray("node_b");	
22#  }

 tipo č definito a runtime[...]
No.
Kiuhnm

geko ha scritto:

quello che hai scritto sembra c! Cmq, non e' possibile cosi' come fai 
tu, potresti cavertela con una classe base, e una factory, oppure con 
qualche ghirigoro simile (ma piu' brutto) in stile c (tipo puntatori a 
void...). Soluzioni migliori non mi vengono in mente, adesso. C'e' da 
dire che una funzione template, pur risolvendo a compile time, rimane 
generica, no?
Zeppe
Ciao,
Zeppe

 errata come puo' essere corretta?
potrei avere frainteso quel che vuoi fare, ma mi è parso che tu 
faccia una certa confusione tra token inteso come lo vede il 
compilatore (compile time) e valore contenuto in una variabile, 
come può essere determinato e visto a runtime.
tra il token node_a senza apici, visto dal compilatore e 
interpretato come nome di tipo dopo la sua dichiarazione, e il 
literal "node_a", non c'è la benchè minima parentela.
Se vuoi emulare una qualche dinamicità, devi creare degli switch 
o, al limite, array di puntatori precompilati che, sulla base 
dell'indice che una stringa variabile ha entro la tabella di 
ricerca, chiama tramite puntatore una funzione apposita, 
l'allocatore. Naturalmente per potere avere l'array di puntatori 
  occorre un prototipo generico di funzione costruttore, che 
potrebbe costruire una classe container adatta a tutti i tipi 
concreti che vuoi costruire.
FORSE (non ci ho pensato molto) anche un costruttore template 
potrebbe farlo, ma ho il dubbio del fatto che il sottotipo di 
template viene risolto a compile time, per cui non mi pare 
adatto a un caso dinamico. Mah
ciao
Soviet

Newsgroup: it.comp.lang.c++
Titolo: problema.

Sto cercando di fare un programma per giocare a mastermind (io contro il
computer) per adesso ho fatto le prime due funzioni ma essendo un
principiante ci sono una cifra di errori. Ringrazio chiunque mi possa
aiutare a correggerli.
Ciao a tutti ai belli e ai brutti!
#include<stdio.h>
#include<stdlib.h>
void main()
{
typedef enum{bianco,giallo,verde,azzurro,rosso,nero,neutro}colori;
typedef char string[7];
typedef colori vettore[4];
vettore tentativo,codice;
int n,c;
string appoggio,risposta;
}
void genera(vettore codice);
{int i,caso;
 for (i=0;i==3;i++)
 {caso=(rand);
  switch (caso)
  {case 0: codice[i]=bianco; break;
   case 1: codice[i]=giallo; break;
   case 2: codice[i]=verde ; break;
   case 3: codice[i]=azzurro;break;
   case 4: codice[i]=rosso;  break;
   case 5: codice[i]=nero;   break;
  };
 };
}
void leggi(vettore tentativo);
{string appoggio1;
 char appoggio2;
 int i;
 for(i=0;i==3;i++)
 {scanf("%d,&appoggio1);
  appoggio2=appoggio1[1];
  switch (appoggio2)
  {case b: tentativo[i]=bianco; break;
   case g: tentativo[i]=giallo; break;
   case v: tentativo[i]=verde;  break;
   case a: tentativo[i]=azzurro;break;
   case r:  tentativo[i]=rosso; break;
   case n: tentativo[i]=nero;   break;
  };
 };

 {scanf("%d,&appoggio1);
 
In questo caso, non devi utilizzare l'operatore di riferimento & di
fronte alla variabile appoggio1. Lo specificatore di formato %d e'
errato, se stai cercando di leggere una stringa.
Al posto di scanf, usa fgets()

Newsgroup: it.comp.lang.c++
Titolo: Ho dei problemi con Visual C++ 4.0

Qualcuno mi puo' dire in quale newsgroup posso scrivere per risolvere i
miei problemi con questo compilatore della Microsoft ?
Stefano
 
in...@lame.polito.it

miei problemi con questo compilatore della Microsoft ?
perche' non provi a scriverli qui ? Prova ad esporli magari qualcuno
e' in grado di risolverli.
Gianpaolo Bottin
- Live Long and Prosper -

	
in...@lame.polito.it
Alla mia homepage ho raccolto links a siti e faq riguardanti il C/C++ e in
particolare il VC 4.x, e vi e' una pagina dedicata ai newsgroup.
Se interessa, l' indirizzo e' 
http://www.uli.it/~carimati
-------------- -------- ------- ------ ----- ---- --- -- -  -
-> - S - H - I - N -         E-mail : 
cari...@uli.it
 
      Links & Newsgroup Visual C++ 
      & Shin Button OCX - Freeware! : 
http://www.uli.it/~carimati
 <-
-------------- -------- ------- ------ ----- ---- --- -- -  -
Newsgroup: it.comp.lang.c++
Titolo: [?] Variabili c++ parte II ^_^

In vb settavo una variabile numerica con:
Dim numero as Integer
poi gli davo un valore con:
numero = bar1.value
adesso se in c++ setto:
numero = TrackBar1->Position;
mi ritorna errore...
se invece provo con un editbox ovvero:
edit1->text = TrackBar1->Position;
nel text spunta il valore esatto.... come e dove va dichiarata una
variabile???
esistono integer, long e string anche in visual c++?
PS
so che sono cose stupide ma essendo basilari devono essere acquisite al 100%
grazie



 al 100% grazie
  Per questo un buon libro ti puo` essere di grande aiuto. ;)
	Alla prossima,
		Marco

 esistono integer, long e string anche in visual c++?
Certo. Il tipo int con tutte le sue varianti (long compresa) è primitivo
del linguaggio mentre il tipo string fa parte della libreria standard.
EMG


Esistono si, ma devi dichiarle:
int numero;
long numero;
char stringa[20];
Se usi l'MFC esiste anche la classe CString.
Ciao

  Bjarne Stroustrup: "The Language C++ -- 2^nd edition". 
Non era "The C++ programming language", giunto tra l'altro alla
3 ed.?
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Unicode su win98

Ciao, il mio problema è questo:
quando installo la mia applicazione su Win98,
ho un problema riguardante Unicode, precisamente
Unicode wrapper not found. Dal sito microsoft
ho scaricato il file unicows.exe che contiene 
unicows.dll, unicows.sym e unicows.pdb (per il debug).
Le istruzioni dicono di copiare unicows.dll nella cartella
dell'applicativo. Io continuo pero' ad avere lo stesso errore.
Suggerimenti?
grazie
tommaso

pardòn, ho sbagliato gruppo.
bai
tommaso
--------------------------------
Inviato via 
http://usenet.libero.it
Newsgroup: it.comp.lang.c++
Titolo: eccezioni

salve a tutti,
uso FreeBSD con il g++ 2-95-4 .... provando vari esempi per la gestione delle
eccezioni ho il seguente comportamento ...
class A
{
public:
      A()
      {
            cout << "Costruttore di A !!" << endl;
            throw "errore";
      }
      ~A()
      {
            cout << "Distruttore di A !!" << endl;
      }
};
int main(void)
{
      try
      {
            A a;
      }
      catch(char *e)
      {
            cerr << "catch di : " << e << endl;
      }
      return 0;
}
se non metto il cast (char *) dopo il throw, il programma va in core dump ...
Costruttore di A !!
Abort trap (core dumped)
con throw (char *)"errore" funziona ... non avendo trovato niente di simile ne'
sullo Stroutrop ne sugli esempi in internet, volevo sapere se e' un
comportamento standard o se e' una cosa propria del g++ ...
grazie anticipate ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 ...
Sebbene i letterali stringa siano (per ragioni storiche) array di char 
non-const (anche se, in realtà, non devi azzardarti a scriverci dentro), le 
copie temporanee prodotte dal lancio dell'eccezione sono di tipo 'const 
char*'. Questo è previsto dallo Standard.
Max 

 Max 
ciao ...

Newsgroup: it.comp.lang.c++
Titolo: Errore c++

Salve. Utilizzo Dev-Cpp. Compilando mi dà il seguente errore :
connessione.cpp:11: semicolon missing after declaration of `connessione'
connessione.cpp:11: ISO C++ forbids defining types within return type
connessione.cpp:11: two or more data types in declaration of
`Rischiesta_parametri_connes'
connessione.cpp:11: semicolon missing after declaration of `class
connessione'
Non ho molta familiarità col errori c++ e ambiante dev, per cui non capisco
bene che tipo di errore sia.
Qualcuno può aiutarmi. Se fosse necessaro posso inviare ulteriori dettagli
sul codice.
Grazie!

Manca un ";" alla fine della dichiarazione di "connessione" o alla fine
della classe (? forse posta il codice!)
class connessione {
public:
...
}; <-- !!!!!!

 ha scritto nel messaggio
news:c6t239$h8v$1...@admin.servernet...

Grazie. Mi sono accorto della mia c*****a !

Newsgroup: it.comp.lang.c++
Titolo: Ping protocol

Ciao a tutti,
devo implementare una funzione che faccia quello che fa il comando
ping. Il problema e' che cercando negli RFC non ho trovato la
descrizione di tale protocollo.
Qualcuno puo' inviarmi le specifiche tecniche di tale comando?
Grazie.

Qualcuno puo' inviarmi le specifiche tecniche di tale comando?
Il Packet INternet Groper, comunemente noto come ping, non fa
altro che spedire un pacchetto ICMP con TYPE=8, il codice di
"echo request"; questo, come in tutti i pacchetti ICMP, e` il
primo ottetto.  Il secondo ottetto, CODE, dev'essere zero;
seguono poi due ottetti con la checksum (lo stesso algoritmo
che l'IP usa per le checksum sue), poi due di "identificatore"
e due di "numero di sequenza" (la controparte te li deve
rimbalzare pari pari, cosi` che tu possa usarli per verifica),
e infine eventualmente altri dati che pure ti verranno rimbalzati
pari pari.  Il messaggio di ritorno sara` identico, eccetto che
avra` TYPE=0, codice di "echo reply".
Nota che questo protocollo e` parte dell'IP, quindi sotto al TCP
e UDP che normalmente usi per incapsulare tutti i messaggi
a livello applicazione.  Come fare a convincere il tuo sistema
operativo a lasciarti parlare ICMP, e ricevere le risposte, e` un
problema strettamente dipendente dal sistema e non parte
degli standard TCP/IP.  In WinSock2, per esempio, basta che 
tu apra una socket come AF_INET, SOCK_RAW, e con
IPPROTO_ICMP -- ma d'altronde, se hai VC++ e/o MSDN,
puoi studiarti come esempio proprio appunto i sorgenti del
programma ping.  Analogamente, su Linux, puoi fare per i
sorgenti di *quel* ping, che funzionano in modo assai simile
(con necessita` per il programma risultante di essere set-UID
a root, naturalmente).
Se la tua esigenza e` per sistemi ancora diversi (mainframe,
Macintosh, Vax, o che altro), ti conviene forse cercare su
gruppi ad essi dedicati, piuttosto che su quello del linguaggio
C++ che con queste problematiche, in effetti, c'entra un po'
come i cavoli con la merenda.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Ordine di valutazione in un if

In che ordine vengono valutate le condizioni in un if?
Mi spiego meglio:
bool a,b;
bool funzione(void);
if (a && b && funzione()) {....codice...}
funzione() viene sembre eseguita anche se a č false? O
il compilatore per velocizzare le operazioni la salta?
In particolare all'interno di una funzione ciclica (che cioč viene chiamata
peridicamente):
static bool a=false;
if (!a) if (funzione()) a=true;
č equivalente a:
static bool a=false;
if (!a && funzione()) a=true;
oppure, quando a diventa true, funzione() viene valutata lo stesso
nell'ultimo caso?

 if (a && b && funzione()) {....codice...}
if ( ((a&&b) && funzione())
e, se ((a&&b) == false) allora funzione() non viene valutata.
--
Gerolamo

il compilatore per velocizzare le operazioni la salta?
L'ultima che hai detto.In linguaggi come il C++(ma anche ovviamente in
C, in Python,Pascal e tanti altri) si valuta da sinistra verso destra
e se una delle tre condizioni rende inutile la valutazione delle
altre, lo stato stato complessivo della condizione assume il suo
valore e la verifica termina.
Quindi la stessa cosa avviene per l'OR nel caso che una condizione sia
true,e lo puoi sperimentare con un esempio come questo..
#include<iostream>
bool cane(){std::cout<<"CANE\n";return true;}
bool gatto(){std::cout<<"GATTO\n";return true;}
bool topo(){std::cout<<"TOPO\n";return true;}
int main()
{
if(cane() || gatto() || topo())
	{
	std::cout<<"OR ha dato successo\n";
	}
}
l'output é
CANE
OR ha dato successo
L'unico linguaggio di mia conoscenza che ancora non prevede questo
tipo di ottimizzazione e valuta tutte le condizioni anche se il
risultato é già stabilito é il VB, dove infatti bisogna stare ben
attenti a quando si creano questo tipo di controlli(specie se nella
valutazione devono essere eseguite funzioni con tempi di esecuzione
nell'ordine dei minuti,eh,eh,eh,eh).
Il Ghenio
---------
// TODO: Place your ass here

 verifica termina.
In pascal standard no;
Se ricordo bene viene valutata tutta l' espressione 
-- 
#eno
Newsgroup: it.comp.lang.c++
Titolo: [PROB. OT] Hook e Rimozione messaggi

Salve a tutti, innanzitutto scusate se sono forse fuori argomento.
                  Programmo per diletto in ambiente win32 in linguaggio asm
(non ho trovato un Ng dedicato all'asm ma e' abbastanza vicino al c/c++) e
ora mi trovo di fronte ad un problema che non riesco a risolvere:
ho scritto un'applicazione che intercetta i messaggi diretti ad un altra e
in teoria vorrebbe modificarli.
Dico in teoria perche' sebbene riesca ad intercettarli non riesco a
modificarli...
Per intercettarli ho costruito un hook globale di tipo WH_KEYBOARD (solo
eventi di tastiera) con codice residente in una dll. Ora nell'hook passano
tutti gli eventi relativi alla tastiera dell'intero sistema, per filtrare
solo quelli relativi all'applicazione bersaglio non sono riuscito a trovare
di meglio che cercare con GetFocus l'handle della applicazione con l'input
focus e quindi compararla a quella dell'applicazione bersaglio.
A questo punto controllo il virtual key code e se e' quello che mi interessa
vorrei provare a rimuoverlo dalla coda (cosi' posso piazzarne un altro al
suo posto).
Ho provato con peekmessage con flag PM_REMOVE ma sembra non avere alcun
effetto, forse questo e' dovuto al fatto che la call viene dal thread della
hookproc, boh sono senza idee, se riuscite a darmi qualche spunto ve ne
saro' molto grato altrimenti grazie lo stesso dell'attenzione.
Ciao!

Qui effettivamente sei OT. Il gruppo che mi pare piu' adatto e'
it.comp.programmare.win32 .
Ciao,
Nicola

 (non ho trovato un Ng dedicato all'asm ma e' abbastanza vicino al
c/c++) e
io non me la sentirei di dire che l'asm sia abbastanza vicino al c++,
se non per il fatto che entrambi, una volta compilati, generano codice
macchina :o)
Newsgroup: it.comp.lang.c++
Titolo: Cancellare una classe

Uso le MFC 4.0
Ho creato una classe per prova che adesso non mi serve piu'.
Come si fa' a cancellarla?
-- 
 --------------------
 - Saluti dal Conte -
 --------------------
Eliminare la scritta NOSPAMPLEASE dalla email per contattarmi

--
Piuttosto facile (se usi VC++, perché io uso quello). Elimini i file cpp e h
della classe (es: myclass.cpp e myclass.h) dal FileView e quindi togli tutti
gli #include "myclass.h" dai vari file del programma. Dovrebbe bastare.
Riccardo
scozz...@iol.it
http://www.Geocities.com
\CollegePark\Quad\9526
scozz...@geocities.com

Newsgroup: it.comp.lang.c++
Titolo: Trasferire i dati dalla rete sulla comm

Avrei bisogno di trasferire dei dati provenienti da alcuni computers in rete
direttamente sulla comm di uno di questi  computer.
Sono un principiante in C++, e' molto complesso il programma?
Potete darmi alcuni suggerimenti?


Si': che con il C++ puro e semplice non lo fai ;)
Mi spiego meglio: il genere di problema che tu vuoi risolvere dipende 
fortemente dal sistema operativo su cui ti trovi - il linguaggio C++ non 
sa nulla riguardo a reti, comm (qualunque cosa siano...), ecc. Prova a 
chiedere su it.comp.programmare.win32 (se sei sotto win), 
it.comp.os.linux.development (se sei sotto linux), o un newsgroup adatto 
al sistema operativo su cui ti trovi.
Ciao!
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

Newsgroup: it.comp.lang.c++
Titolo: Ciao a tutti.

Ciao a tutto il NG,
sono un osservatore silenzioso del gruppo da circa 1 mese ed ho
intenzione di imparare a programmare in C++ ( per hobby, quindi non ho
molta fretta).
Veniamo alla domandona:
quando installo il pacchetto VC++ viene installato anche Spy++, a cosa
serve??
Ciao da Paolo

 serve??
Mi sembra che dia in tempo reale lo stato della coda dei messaggi di
Windows ma non l'ho mai usato.
EMG

serve??
Spy++ ti permette di osservare tutti i messaggi
spediti a una data finestra, con varie possibilita`
di "filtri" per vederne invece solo una parte, ecc.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Niubbi confuso con gli stream!

Allora premetto che sono un niubbi molto niubbi, praticamente questa che
vedete
è il mio terzo overloading di operatori (sulla qual cosa ho SVARIATI dubbi),
ma il mio problema è questo: sto facendo gli esercizi del Deitel& Deitel,
e devo progettare la classe big integer. Allora appena iniziato ho grossi
problemi:
l'overloading di cout va bene, quando vado a mettere una funzione set
volevo trovare un modo per scrivere un int a 20 cifre come un in normale,
tutto di seguito, non cifra per cifra.
La cosa che ho arrabattato funziona, però ho un problema che sarà banale,
ma sul deitel non trovo la soluzione:
se l'utente in fase di set digita 21,22 o + caratteri, i primi venti vengono
presi
da cin.get, gli altri rimangono in buffer istream, e quando vado a fare un
semplice cin>>int
nel main,si prende il primo dei caratteri che sono rimasti nel buff.
Come si fa a pulire il buffer di istream? endl, flush vanno per cout,
cin.clear non fa niente che mi interessi.
Ringrazio anticipatamente e scusate per la niubbità che mi attanaglia.
Grazie
Emanuele Di Saverio
#include<iostream>
#include<cstdlib>
class speppaNum  {
    friend ostream &operator<<( ostream&, speppaNum &);
    public:
        speppaNum();
        void setNum();
    private:
        int num[20];
};
/// la classe
ostream &operator<<( ostream&out , speppaNum &graNum)
{
   for (int i=0; i<20; i++)
     out << graNum.num[i];
     out << endl;
    return out;
}
speppaNum::speppaNum()
{
for (int i=0; i <20; i++)
    num[i]=0;
}
void speppaNum::setNum()
{
  cout << endl << "mandami il nummero \n";
  cin.width(20);
  for (int i=0; i<20; i++)
        num[i]=(cin.get()-48);
}
int main()
{
speppaNum a;
a.setNum();
cout << a<< endl;
int b;
cin >> b;
cout << b;
system("PAUSE");
return 0;
}

Emanuele Di Saverio wrote:
 > se l'utente in fase di set digita 21,22 o + caratteri, i primi venti
 > vengono presi da cin.get, gli altri rimangono in buffer istream, e
 > quando vado a fare un semplice cin>>int nel main,si prende il primo dei
 >  caratteri che sono rimasti nel buff. Come si fa a pulire il buffer di
 > istream? endl, flush vanno per cout, cin.clear non fa niente che mi
 > interessi.
// leggi un carattere finchè non arrivi ad uno spazio
while (!isspace (cin.get()))
	;	// punto e virgola intenzionale, il ciclo è vuoto in
		// quanto fa tutto la condizione
-- 
Andrea Bergia - studente 	  Linux Registred User #281550
Per favore non mandatemi allegati in Word o PowerPoint.
Si veda 
http://www.fsf.org/philosophy/no-word-attachments.html

 // quanto fa tutto la condizion
ma perchè alla fine di un buffer c'è lo spazio?
io avevo fatto
while (cin.get() != '\n');
pensando che il buffer si magna la robba dopo che l'ultimo carattere
mandato è l'invio.
Naturalmente non funziona così, perchè non va :P
Emanuele
Newsgroup: it.comp.lang.c++
Titolo: Processi !?

Come posso ottenere la lista dei processi attivi attraverso le funzioni API
?
Come posso impostare il valore di priorita' di base di un processo ?
Insomma si possono gestire i processi in Windows Nt attraverso delle
funzioni API oppure esiste del codice che mi permette di fare cio' ?
Qualcuno mi sa rispondere ed aiutare ?
Ne saro' molto grato.
Ciao Piero.



 wrote in message news:865dhr$7j0$1...@nslave1.tin.it...

Questo gruppo (it.comp.lang.c++) e` dedito alla discussione
sul linguaggio C++ indipendentemente dalla piattaforma.
Per discussioni specifiche delle varie piattaforme esistono invece
gruppi appositi.
Posta la tua domanda al gruppo giusto, cioe`:
    it.comp.programmare.win32
e saro` ben felice di aiutarti, ma sicuramente non qui!
Alex
Newsgroup: it.comp.lang.c++
Titolo: GDT e LDT

Salve,
sono in possesso di un compilatore VisualC++6.0. Mi piacerebbe poter leggere
la LDT per poter poi, con l'ausilio del contenuto dei registri,  risalire
alle posizioni in memoria dei vari segmenti. Come posso fare ?

Ciao,
Questo newsgroup si occupa del lingaggio 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 Linux:      it.comp.linux.development
                it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti

 wrote in message 83m9di$f4u$1...@nslave2.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: Stroustruppone

Salve gente... ho finito gli esami di stato e mi ero ripromesso di comprare
la "Bibbia" di Stroustrup... senonchč vado a visitare ben 3 librerie diverse
e, chiedendo "C++: Linguaggio, Libreria Std e Principi di Programmaz. 3a
Ediz." ottengo le seguenti risposte:
1 - Non lo abbiamo
2 - Non lo abbiamo... perchč non prendi "Visual C++ For Dummies"? č molto
migliore!
3 - Questo libro non esiste; dynamic_cast<risata malefica>(AH AH AHHH!)
A questo punto mi sono venuti dei dubbi esistenziali... vivo in una
dimensione parallela in cui Stroustrup non esiste oppure ho sbagliato il
nome del libro?
Ero convinto che il nome giusto fosse quello... ma ora ho qualche dubbio.
P.S.: mi dite anche la casa editrice plz?

 il nome del libro?
Il nome è quello giusto.
La casa editrice è la Addison-Wesley
http://www.gorilla.it/gorilla/product.asp?sku=8871920783&dept%5Fid=
Se sei di Milano sono sicuro che alla CLUP (la libreria del Politecnico)
ce l'hanno.
ciao
--
Gerolamo

Ma perchè nell'era digitale vi ostinate a rivolgervi a negozi dell'eta della
pietra???
Vai semplicemente su 
www.librinformatica.it
, ricerchi il libro (lo
stroustrup in questo caso), e lo compri pagando anche in contrassegno, o con
le spese di spedizione a loro carico se paghi anticipatamente (ex. carta di
credito)!! Consegna mediamente in 3-5gg.
Altrimenti c'è pure 
www.internetbookshop.it
, 
www.bol-ita.com
,
www.gorilla.it
, insomma...non c'è bisogno di scomodarsi dalla sedia per
sentirsi dire delle bestialità!!!
--
--
Lello Mele
--
HOMEPAGE: 
http://www.lellomele.it

 wrote in message
abWX8.32147$K_4.7...@twister1.libero.it...

Io invece penso che nell'era digitale siamo tutti un pò troppo attaccati al
nostro PC! Una bella passeggiata ogni tanto ci vuole!!! ;-D
---- AG5F ---------------------------------------
Il computer per vivere, non vivere per il computer!
---------------------------------------------------

nostro PC! Una bella passeggiata ogni tanto ci vuole!!! ;-D
Quando lo volevo prendere io i negozianti mi hanno tutti preso in giro
perché sostenevano non esistesse. Conclusione: i libri di informatica
li compro su internet che mi costa anche meno.
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c++
Titolo: Quali meccanismi virtuali ?

Riflettevo sul semplice codice MFC 
CMyApp MyApp ;
questa istanzazione crea ed avvia l'applicazione MFC .
Tuttavia ho provato a vedere con il debugger i passi che compie
l'applicazione ma non riesco ancora a trovare il bandolo della
matassa.
Il manuale dice che bisogna ridefinire la funzione virtuale
CMyApp::InitIstance in cui si crea effettivamente la finestra
dell'applicazione .
Tuttavia non riesco a capire chi chiama questa funzione.
In teoria dovrebbe farlo l'istanzazione di MyApp ma in che modo visto
che il suo costruttore puo anche essere vuoto e che nessun costruttore
puo chiamare funzioni virtuali di classi derivate ?


In MFC c'č una implementazione di WinMain (il punto di ingresso di ogni
programma windows) che chiama AfxGetApp e si fa restituire un puntatore
all'oggetto di classe applicazione. Su questo poi chiama InitInstance. Da
notare che č il costruttore di MyApp che chiamando CWinApp registra se
stesso in una variabile globale da cui va a pescare AfxGetApp. Da qui si
spiega il commento "The one and only application object" generato da
AppWizard. Se manca un oggetto di classe WinApp o ce ne sono piů d'uno la
cosa non funziona!!!
Fulvio
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

stesso in una variabile globale da cui va a pescare AfxGetApp. 
Se ti e' possibile ,
mi faresti un semplice esempio "parallelo" scrivendo magari qualche
riga di codice?
grazie

 riga di codice?
Magari andando su di un NG specifico per Win32 ??


 
Il meccanismo usato č questo:
int WINAPI WinMain(...) //Implementazione di MFC, prova a vedere tra i
sorgenti
  {
  // ... un po' di inizializzazioni...
  CWinApp* app = AfxGetApp(); // qui si ha il puntatore all'oggetto della tua
classe derivata da CWinApp
  app->InitInstance(); // chiamata virtuale
  // entra nel ciclo dei messaggi etc...
  }
nel costruttore di CWinApp , che viene chiamato dalla tua classe:
CWinApp :: CWinApp( ... )
  {
  // inizializzazioni varie...
  g_app = this; //g_app č una variabile globale di tipo CWinApp*
  // ...
  }
cosě facendo abbiamo registrato il puntatore alla nostra classe in un membro
globale alla costruzione dell'oggetto CWinApp (Che avviene prima di chiamare
WinMain in quanto oggetto globale), puntatore che viene recuperato da
AfxGetApp. Nella WinMain chiamiamo InitInstance ed il gioco č fatto.
Nonostante tutto cerca di non copiare i meccanismi di MFC se puoi, la loro
dinamica č econtorta e richiede cautele (vedi cosa succede commentando la
definizione dell'oggetto applicazione o aggiungendone una seconda).


definizione dell'oggetto applicazione o aggiungendone una seconda).
Non voglio copiare i meccanismi di MFC e solo che mi piace capire come
avvengono certe cose e non semplicemente accettarle cosi come sono .
ciao
Newsgroup: it.comp.lang.c++
Titolo: facile facile

sto studiando c++ da qualche settimana ma tra tutti i manuali che ho
trovato in rete e che sto consultando nn ho ancora trovato
l'istruzione x pulire lo schermo: lasciate stare panni umidi e alcool
o eventuale sfruttamento di colf ;-> intendo sapere se esiste (mi sta
sorgendo quasi il dubbio) un'istruzione simile al buon "CLS" del dos.
Thanks a lot per ogni aiuto che arriverą
deadhead

non credo esista una fnzione del genere nella libreria standard del c++ se
mi sai dire quale quella usi forse posso aiutarti o consigliartene una ma
gari se mi sai dire anche quale il tuo obbietivo e meglio.

 sorgendo quasi il dubbio) un'istruzione simile al buon "CLS" del dos.
Non c'č alcuna istruzione del genere, poiché il c++ non conosce neppure
il concetto di "schermo".
Se sviluppi per DOS/WIN32(console), puoi ricorrere alla funzione system(),
di cui qui sotto c'č un esempio di utilizzo:
#include <iostream>
#include <cstdlib>
int main() {
    std::cout << "Lo schermo č scritto. Premendo un tasto lo si pulirą." <<
endl;
    std::system("pause");
    std::system("cls");
    return 0;
}
la funzione system esegue un comando del sistema operativo, e ciņ puņ
essere utile anche per utilizzare il comando dos PAUSE nei propri
applicativi, quando vengono eseguiti da win (anche se non č il massimo
dello stile, lo ammetto).
Comunque puoi metterti a cercare una soluzione alternativa a quella
proposta.. Ciao! :)
--
Lupin85© - FILSer #2
Founder di #fils
-*Sign in allestimento*-

 l'istruzione x pulire lo schermo:
Questa domanda viene posta veramente tantissime volte. 
Se vai su 
groups.google.com
 è digiti
    "pulire lo schermo" group:it.comp.lang.c++
trovi un bel po' thread su questo argomento.
Max
PS: Forse sarebbe il caso di aggiungerla alle FAQ del gruppo.

trovi un bel po' thread su questo argomento.
Hai ragione, nn ci avevo pensato ;-P
Chiedo pubblica ammenda :-)))
effettivamente su google ho trovato...
cmq io mi sto facendo le ossa con programmini per Dos/win32 
se volete suggerire altri metodi oltre a quello proposto da Lupin85
scrivetemi pure in privato.
thanks
deadhead

...e compilo con il compilatore da riga di comando di borland
deadhead

 scrivetemi pure in privato.
Non č meglio condividere le conoscenze qui, sul NG? :)
--
Lupin85Š - FILSer #2 - Founder di #fils
"Non č importante che tu faccia qualcosa di speciale
 ma che tu sia sempre padrone della tua vita"
                                       [Henry James]

 deadhead