mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Template e classi locali

Perche' non e' possibile usare classi locali di una funzione
come parametri per i template?
Questa restrizione mi sembra scomoda; per esempio rende 
impossibile una cosa del tipo
void pippo(...)
{
  struct Action {
    ...
    void operator () (...) { ... }
  };
  ....
  for_each( x.begin(), x.end(), Action(...) ); // ERROR
  ...
}
	Mauro

Questa restrizione mi sembra scomoda; per esempio rende 
Hai ragione, e` sicuramente davvero scomoda, poiche` ti
obbliga ad "estrarre" dalle funzioni le classi sulle quali vuoi
istanziare template (questo, a sua volta, rende ancora meno
utili le "classi locali", gia` affette da sin troppe limitazioni).
Alex

Newsgroup: it.comp.lang.c++
Titolo: Strano errore in std::list

Mi trovo a lavorare con una std::list,
cosa che non mi ha mai dato problemi.
Ora però trovo uno strano errore che anche
tramite il debug non riesco a capire.
for (list<Cchunk>::iterator i=chunks.begin();i!=chunks.end();i++)
	...........
...dove chunks è un attributo della classe
così definito:
list<Cchunk> chunks;
Nell'output del GDB ho:
Internal error: 'this' is not an aggregate
....
std::list<Cchunk, std::allocator<Cchunk> >::begin()
A quanto pare l'errore mi porta a std_list.h, dove
si definisce:
       iterator
       begin()
       { return static_cast<_Node*>(_M_node->_M_next); }
Non riesco a capire cosa ho sbagliato, vi prego di
darmi una mano se potete.
Grazie mille,
Livio

 	...........
a occhio quello che e' scritto qui sembra corretto...
...forse il problema e' altrove nel codice?
dan
Newsgroup: it.comp.lang.c++
Titolo: DevC exe files

Ciao a tutti,
ho installato da poco DEVC 4.
come mai quando mando in esecuzione un file il prompt compare e scompare
subito dopo l'esecuzione?
como posso fare per lasciare la finestra visibile?
ho provato con un getchar() e funziona, ma ci deve pur essere un'altra
soluzione, che so, un'opzione da spuntare da qualche parte.
grazie,
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 como posso fare per lasciare la finestra visibile?
Aprire una finestra di MS-DOS, e lanciare il tuo programma da lě.
-- 
Andrea Bergia - studente              Linux Registered User #281550

 wrote in message
fbccfbe35163acf2681...@mygate.mailgate.org...


Newsgroup: it.comp.lang.c++
Titolo: MSDN Originale Vendesi

Vendo i seguenti numeri di MSDN Library Originali:
-MSDN July 1999 (1 DVD) 40.000 lire
-MSDN July 2000 (3 CDs) 90.000 lire
-Component Source MSDN 10/99 Edition (1 CD) 8.000 lire
-Component Source MSDN 04/2000 Edition (1 CD) 10.000 lire
-Component Source MSDN 06/2000 Edition (1 CD) 16.000 lire
-MSDNnews (opuscolo) January/February 2000 4.000 lire
Component Source MSDN e MSDNnews se associati a un numero di MSDN Library a
metà prezzo.
Spese di spedizione a carico del destinatario.
Scrivete a 
fran...@yahoo.it

Vendo i seguenti numeri di MSDN Library Originali:
-MSDN July 1999 (1 DVD) 40.000 lire
-MSDN July 2000 (3 CDs) 90.000 lire (Ultimo numero uscito!)


cominciamo ad essere un po pesanti eh ?
--
Gna...@Wappi.com
bmq...@tin.it
ICQ# 76488613
http://gnaffy.tripod.com/
Newsgroup: it.comp.lang.c++
Titolo: Struttura dati adatta per rubrica...

Salve a tutti.
Sto creando una classe rubrica (per esercitarmi per l'esame di
programmazione). Prima di continuare, però, mi sono venuti dei dubbi...
Anzitutto, dove terrò la rubrica? Su file, giusto? ^_^
Bene, ma poi come potrò fare una ricerca sulla rubrica stessa?
Cioè... dovrei leggere il file e passare l'intera (!) rubrica in memoria
per poi fare la ricerca? posso mai agire direttamente su file?! non
credo, anzi spero di no. :-)
E spero anche che non dovrò fare una ricerca "a pezzi": porto la prima
parte in memoria, cerco, poi porto la seconda e così via... :)
Che struttura dati mi consigliate? Mi chiedo: come fanno i database? :-)
Altro problemino: è possibile (spero proprio di sì! :) ) scrivere
l'intera rubrica direttamente su file? Con una specie di:
fd << miarubrica;
Per poi riprenderla (necessariamente interamente?) con una specie di:
fd >> miarubrica;
Ditemi che sarà possibile farlo, vi prego. :-) (ancora non ho molta
dimestichezza con la gestione dei file in C++)
Grazie infinite in anticipo per le risposte!
Buona serata,
Mandrachele

 Grazie infinite in anticipo per le risposte!
Di niente
Sini Andrea

 dimestichezza con la gestione dei file in C++)
Il C++ può fare tutto. Basta dirgli come.
L'overload degli operatori è uno strumento molto potente, ma avrai
sicuramente bisogno di un overload su due livelli, il primo che legge un
singolo record, il secondo che legge l'intero file leggendo tutti i singoli
record. A questo scopo ti suggerisco di crearti la classe record della
rubrica e poi creare la classe rubrica come collezione strutturata di record
della rubrica. Oppure come collezione strutturata di istanze di una classe
che rappresenta un sottoinsieme della classe record (nel caso tu voglia
tenere in memoria solo i dati suscettibili di ricerca e caricare i dati
satellite usando l'offset).
Newsgroup: it.comp.lang.c++
Titolo: Cerco Borland c++ 5

In cambio posso dare Visual Studio 6 (Visual Basic 6, Visual c++, Fox
Pro... --> sono 6! cd.)
scrivete a 
mga...@zetel.com
 solo se siete interessati
thanx
--
Posted from [194.209.20.245]
via Mailgate.ORG Server - 
http://www.mailgate.org


ICQ #34602650

Newsgroup: it.comp.lang.c++
Titolo: Notazione Infissa e Postfissa

Qualcuno conosce un sito dove reperire info a proposito di questo
argomento?? Grazie mille
----     Fabio

 argomento?? Grazie mille
Si, il mio!
www.mondohobby.it
 vai però nella sezione bitland (quella che curo io) perché
la mia ragazza lo ha riempito di foto di gatti!!
Attento che ha messo anche un sacco di javascript ed è diventato
pesantissimo...
Se non ti lasci inorridire dalla mia scarsa capacità comunicativa, c'è un
articolo che ho scritto su la notazione polacca postifissa, c'è anche un
programmino con una classe, anche se non è proprio standard al 100% (ps. tra
l'altro la maggior parte dei programmi riguardano Win32 e le API).
Ciao.

Newsgroup: it.comp.lang.c++
Titolo: [help] try & catch

all'interno di un programma mi trovo ad usare una classe il cui
costruttore potrebbe fallire; ho provato ad inserirla in un blocco try:
try {
	TCPStream tcp(addr,666);
} catch (...) {
	//blablabla
}
tcp.isPending(SOCKET_PENDING_INPUT);
ma il compilatore mi dice 
`tcp' undeclared (first use this function)
proprio nella riga in cui cerco di chiamare isPending
sembra infatti che tcp sia visibile solo nel blocco catch e venga 
distrutto all'uscita
ho notato che questo vale per qualunque tipo di variabile, non solo per
le classi
come posso gestire correttamente un'eccezzione lanciata dal costruttore
di una classe?
grazie e ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.

 di una classe?
Io farei cosě:
try {
  TCPStream tcp(addr,666);
  tcp.isPending(SOCKET_PENDING_INPUT);
}
catch (TCPStream::Ctor_err) {
//blablabla
}
catch (...) { /*blablabla*/ }
Che utilita' potresti avere, infatti, nell'utilizzare un oggetto "menomato"?
Ciao
Domenico Barra

 Che utilita' potresti avere, infatti, nell'utilizzare un oggetto "menomato"?
le istruzioni in catch mi servono solo per chiudere correttamente il
thread, altrimenti se c'e` un errore nell'inizializzazione della connessione 
l'eccezione che viene sollevta "uccide" tutto il programma
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
La somma dell'intelligenza sulla terra e' una costante.
La popolazione e' in aumento.

 l'eccezione che viene sollevta "uccide" tutto il programma
Puoi chiudere correttamente il TCPStream gia' nel costruttore, in caso di
errore, e gestire il gestibile nel blocco catch.
Ciao
Domenico Barra

 dovrei inserire tutto il codice in try?
Un po di fantasia no???????
TCPStream * pTcp = 0;
try {
  pTcp = new TCPStream(addr,666);
  pTcp->isPending(SOCKET_PENDING_INPUT);
}
catch (TCPStream::Ctor_err) {
//blablabla
  delete pTcp;
  pTcp=0;
}
catch (...) {
/*blablabla*/
  delete pTcp;
  pTcp=0;
}
potresti meglio usare un autopointer e scordarti le delete.
Sent via Deja.com
http://www.deja.com/
Newsgroup: it.comp.lang.c++
Titolo: Come posso trasformare un vettore di interi in una lista semplice?

Io non so proprio come iniziare...
Posso considerare una lista come "vettore" (magari ordinandolo) e
ovviare così al problema?

 ovviare cosě al problema?
Una lista e' una lista, ed un vettore un vettore :-)  Scegli quello
che ti serve a seconda delle tue necessita' (accesso random o
sequenziale, ...).  Per ordinare una lista o un vettore:
std::list<T> lt;
std::vector<T> vt;
// riempi lt o vt
lt.sort();                              // sort secondo less<T>
lt.sort(op);                            // sort secondo op()
std::sort(vt.begin(), vt.end());        // sort non stabile secondo less<T>
std::sort(vt.begin(), vt.end(), op);    // sort non stabile secondo op()
std::stable_sort( stessi parametri );   // per un sort stabile
(n.b.: op() e' un predicato binario).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 ovviare cosě al problema?
ti ha gia` risposto Maurizio, cmq aggiungo:
per trasformare una lista in vettore e viceversa:
std::list<int> new_list( old_vector.begin(), old_vector.end() );
std::vector<int> new_vector( old_list.begin(), old_vector.end() );
non sono sicurissimo della seconda, cmq la prima e` sicuramente giusta.
ciao Anto
-- 
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra
Newsgroup: it.comp.lang.c++
Titolo: Popen e cat linux

 
Salve a tutti
 
Mi sapete dire se usando cat tramite popen (utlizzo una shell
linux MSYS di Mingw) e possibile assegnare a delle variabili
char e/o int il contenuto di un file?
Oppure si deve fare un parsing con strtok o sscanf?
Le variabili o char o int sono una per riga.
 
Grazie
 
Saluti
 
 
 
 

Il 24/06/19 09:22, 
ne...@tin.it
 ha scritto:

perche usare cat e popen ?
basta aprire il file,leggere riga per riga e con operator << trasformare 
il valore nel tipo voluto
 
 
-- 
|___|


 
Perche sto parlando di linguaggio C e non C++. :-)
IL NG di C e morto, mi sono rivolto quì.
 
 
 
 
 
 

Il 26/06/19 02:33, 
ne...@tin.it
 ha scritto:

a bene
Ma anche qui non e' che sia il massimo della vitalita
 
 
-- 
|___|


La domanda resta, pero', valida: perche' popen + cat quando basta aprire 
il file (fopen)?
In ogni caso, leggendo dal file o catturando l'output di cat la solfa 
non cambia perche' il metodo con cui acquisirai i dati dipende dal loro 
formato e dal fatto che tu debba o meno valutare se assegnare il dato 
letto in un int, in un char o altro tipo. In questo caso lo scan&parse, 
per quanto semplice, sara' necessario. Posta un esempio del file che 
dovrai leggere e spiega cosa vorresti ottenere se ti interessa una 
risposta piu' mirata.
 
Saluti, jak.
 
 


Volevo solo imparare ad utilizzare popen e le utility linux di Msys
su di un sistema Windows perche le utility della shell bash mi paiono
più pratiche da utilizzare visto che sono fatte apposta, si chiamano
utility per questo. E sono parecchie. Che sò, cut, tac, grep, awk,sed,
tail, wc, etc.
 
Saluti
 
 
 
 
 
 


Beh, allora la risposta e' piu' semplice...
Approfitta delle regexp di grep o scrivi tutto con awk :)
 
Saluti.
 

Il 27/06/19 01:26, jak ha scritto:

O PERL che e' ancora piu flessibile
E' fatto apposta per manipolare testi
 
 
 
-- 
|___|
Newsgroup: it.comp.lang.c++
Titolo: Problema di Polimorfismo

Problemino...
Ho fatto un programma di test per una gerarchia di classi di figure
geometriche:
FIGURA - PUNTO - CERCHIO - CILINDRO
FIGURA č classe base astratta
class Figura {
      public:
             virtual float area() { return 0; };
             virtual float volume() { return 0; };
             virtual void print();
};
Dopo aver compilato (uso DEV-C++ 4.01) non ricevo errori di compilazione
ma solo un errore del linker
c:\documents and settings\fabio\documenti\progetti c++\polimorfismo - figure
geometriche\point.o: In function `ostream::_ls(float)':
//c/documents and settings/fabio/documenti/progetti c++/polimorfismo -
figure geometriche/point.cpp(.data$_vt$6Figura+0x1c): undefined reference to
`Figura::print(void)'
perchč? O_O
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 perchè? O_O
Hai definito void Figura::print() ?
Se no e' altamente probabile che il problema sia quello...
 bye
	av.
P.S.
Hai anche valutato di rendere i tre metodi astratti?

};
virtual void print() {}; se no viene considerata solo un prototipo di
una funzione e non come funzione.
 


ebbene sě, funziona!
grazie mille!


 };
Una classe base può definirsi astratta solo se
possiede almeno una funzione virtuale pura.
Io non ne vedo.
-- 
SiMoStro

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

Although, GetSafeHwnd is defined in afxwin.h, but when I
use it in my program, I get the undeclared identifer error. Is there
anybody who knows do I need to add some header files or
change my setting. My compiler is VC++ 6. And I have the following
in my header files.
#include <afxmt.h>
#include <afx.h>
#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdisp.h>        // MFC Automation classes
#include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common
Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

 wrote in message
Miku2.16$Z66....@news.total.net...
Newsgroup: it.comp.lang.c++
Titolo: VC++ - Usare le Member function di altre classi

Ciao
	sono alle prime armi con il VC++ 5.0 e le MFC... ed ho un problemino
(uno....).
Mi spiego: quando voglio usare le member function di una classe derivata
da CDocument e mi trovo in una member function di una View uso la
funzione GetDocument() per ottenere un puntatore al documento e poi
accedo tranquillamente alle sue member function.
E se invece io volessi chiamare delle functions che fanno parte di
CWinApp o di CFrameWnd come faccio? (sempre dalla vista o dal documento)
Ringrazio anticipatamente sperando che qualcuno mi venga in aiuto.
Ciao

...

Penso dovresti leggere prima di tutto un libro di programmazione ad
oggetti. 
Altrimenti sapresti che non è possibile invocare da ogni classe i metodi di
una qualsiasi altra classe.
Nel caso della CView tu puoi invocare i metodi del document associato
perché la view conserva
come variabile  il puntatore al documento e questo puntatore ti viene
fornito dalla funzione GetDocument.
Ciò non avviene sempre. E non sempre il meccanismo è questo.
Nel caso della tua classe applicazione derivata da CWinApp, essa è globale.
Per cui puoi riferirti ad essa in qualsiasi 
parte della tua applicazione, eventualmente utilizzando una extern.
Altrimenti puoi avere il puntatore all'applicazione mediante la funzione
Afx
CWinApp* AfxGetApp( )
Per la classe della tua finestra principale, derivata da CFrameWnd, tieni
presente che la tua classe applicazione ha una variabile 
pubblica chiamata m_pMainWnd.
Essa conserva il puntatore alla finestra principale, che in genere dovresti
settare  nella funzione InitInstance della tua applicazione.
Comunque se stai cercando di imparare il VC 5.0 e le MFC penso dovresti
cominciare con un libro sulla programmazione in C++ e poi continuare con un
libro sulle MFC.
Sui libri per imparare il C++ non so molto. Quelli che conosco, ad esempio
il Lippman in genere sono più per riferimento che altro e sono piuttosto
difficili.
Per MFC ti consiglio Schildt - MFC  Programmazione Windows  - McGraw-Hill
				o 
Prosise - Programmare Windows 95 con MFC - Microsoft Press, 
che è più completo ma un po' più difficile e costa quasi il doppio (Sono
due volumi)

Newsgroup: it.comp.lang.c++
Titolo: c Builder e compilare problemi

Salve, ho la versione 5 Enterprise, e volevo realizzare una semplice chat.
In desing time tutto ok, ma quando la provo compilato dice che mi manca una
dll
(BORLANDMM.DLL) ... A questo punto, immagino che debba crearmi una qualche
installazione con il file in questione, solo che non essendoci tools nel
pacchetto non so che fare.
Ditemi voi, per favore
Saluti
Jiz

dll (BORLANDMM.DLL)
Puoi decidere di distribuire il tuo prog con le librerie run-time e quindi
hai bisogno di un programma di installazione come InstallShield fornito di
serie con il C++Builder, oppure linkare staticamente tali librerie ed
ottenere un eseguibile stand-alone, un po' più grosso ma pur sempre
funzionante senza "pacconi" di DLL appresso. Per far ciò devi abilitare il
linking statico delle RTL e dei packages nella finestra di opzioni del
progetto corrente.
Buon lavoro!
--
Stefano Tempesta
ste...@tempesta.org
Newsgroup: it.comp.lang.c++
Titolo: syntax error con i char

dichiarazione:
void sorteggio(char[15], char[3]);
definizione
void sorteggio(char nome[15], char codx[3]){
//codice
};
perchè mi viene dato un syntax error nella definizione?
grazie
ivan

...

la dichiarazione prova con
void sorteggio(char[],char[])
e nella definizione 
void sorteggio(char nome[], char codx[]) 
la prima dimensione e' inutile darla, cmq dovrebbe semplicemente
ignorarla il compilatore
per l invocazione usa sorteggio(a,b)

"Ivan Sofa n.1" <dromeda...@inwind.itDELETE> ha scritto nel messaggio
news:Th46a.148510$ZE.43...@twister2.libero.it...

un vettore è in fondo un puntatore per quello devi passarglielo come
char *

 char *
Un vettore e` un vettore, non un puntatore.
Quelli del programma sopra sono array, che sono una cosa diversa dai
vettori e dai puntatori.
Poi esistono anche le stringhe, che sono molto piu` adatte per questo
tipo di cose, pero` tolgono tutto il divertimento di passare giorni a
cercare di capire perche` un programma non funziona, perche` ogni
tanto c'e` un seg. fault in posti sempre diversi, perche` un programma
che ha sempre funzionato all'improvviso non funziona piu`, ...
        Mauro
Newsgroup: it.comp.lang.c++
Titolo: *** Alla ricerca delle funzioni perdute ***

Scusate il disturbo...
Sono sempre alla ricerca della descrizione
delle funzioni di WIN32.
Ho frugato un po' nell'SDK di VC++ (5.0).
Ne ho trovate parecchie in 
Platform SDK/Windows base service/reference/functions/Win32 functions.
Non sono parecchie. Sono un'infinità...
saranno duemila !
Devo perderci gli occhi a guardarmele (ed eventualmente
stamparle) una ad una dal DevStudio, o
esiste un modo pratico per averle _tutte_ a portata di
mano ? Che so, un sito dove qualcuno ha già
fatto questo lavoro ?
O è ora che mi compri un bel manualone dove ci
sono tutte quante ?
In quest'ultimo caso (e infausto, dato che non ho denaro)
qual è il librone in questione ?
   Grazie a tutti. Baci                  
                                            Milla                          
 
 

qual è il librone in questione ?
Un librino che a me (nonostante purtroppo l'edizione italiana
abbia molti errori di impaginazione e stampa) sembra valere
e` "API di Windows98 for dummies Espresso", 19,000 lire e
limitato a funzioni basilari (poche centinaia) che coprono
forse il 90% dei casi d'uso, rimandando per tanti dettagli
"strani e raffinati" al platform SDK, ma dando l'"essenza",
assai utile (come qualsiasi reference) soprattutto se il grosso
della materia lo conosci e devi solo "ripassarlo".
Se, no si va su sotto-temi specifici, ad esempio Richter,
"Programmazione Avanzata per Win32" (Mondadori
Informatica) si concentra solo su quella parte di Kernel32
piu` propriamente "di sistema" (oggetti di kernel, memoria
virtuale, eccezioni strutturate, gestione files, eccetera), e
la copre estremamente bene (la traduzione e` cosi` cosi`),
ma non parla minimamente di tutto quello che ha invece a
che vedere con disegno, animazioni, suoni, interfacce
utente, eccetera.
Alex

 "Programmazione Avanzata per Win32"...
No, ancora qui non ci sono arrivata. Magari in futuro...
Grazie Alex. Anche se non sarai il mio Siddharta, un bacione
da 25 Megabytes.
                                                                     Milla

da 25 Megabytes.
Graditissimo benche` virtuale!-)
Alex

Non ho capito il problema, se hai il developer studio, a suon di buon F1 vai
alla ricerca di volta in volta delle funzioni di cui hai bisogno. Non va
bene?


Newsgroup: it.comp.lang.c++
Titolo: linux e c++

Dopo aver compilato il programma si crea automaticamente il file a.out ma se
provo ad eseguirlo, non va in esecuzione, perché?

E' un pò OT cmq
./a
"se non baglio"
dove "a" è il nome del programma
Newsgroup: it.comp.lang.c++
Titolo: SOS  urgente

Ciao a tutti,
ho un problema che mi sta preoccupando molto...
Ad un certo punto del mio programma chiamo una funzione con un'
istruzione del tipo:
valore = AnalizzaStringa((unsigned char *)stringa);
dove stringa è dichiaraya così
 char       stringa[20]
e il prototipo della funzione è:
float GetRifToUnitaMisura(BYTE *mystr)         : restituisce un numero
in base a quello che c' è scritto nella stringa
Il mio problema non è tanto il fatto  che appena entro nella funzione
tutte le variabili che utilizzo nel programma e che sono già state
settate risultano come svuotate (quando sono nella funzione mi aspetto
infatti di vedere solo le sue variabili locali, e eventuali variabili
globali).
Il dramma è che quando termino l' esecuzione della funzione ed il
controllo ritorna al programma queste variabili sono state davvero
resettate.
Da cosa può dipendere????
Ringrazio chiunque sia così gentile da darmi un aiuto!!
Paola

Rettifico:
e il prototipo della funzione è:
float AnalizzaStringa(BYTE *mystr)         : restituisce un numero
in base a quello che c' è scritto nella stringa
Preciso meglio: al ritorno dalla funzione si è perso i puntatori alle
strutture che aveva già riempito.
Ad esempio prima della chiamata alla funzione AnalizzaStringa ho:
Struttura.Chiave	0x0012e4f2 "down"
dopo essere uscita dalla funzione (che lavora correttamente e
restituisce il valore che mi aspetto):
Struttura.Chiave	0x0012e406 "ƒ  "

 Da cosa può dipendere????
Impossibile dirlo. Usa un debugger.
Pensare che mi occupo proprio di strumenti per il debugging... significa 
che morirò povero?
Kiuhnm

Lo sto già usando, ma non sto risolvendo granché...  :-(

 wrote 
se tu potessi postare il codice delle funzione "chiamata" ed anche di
quella "chiamante" sarebbe piu' facile aiutarti...
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c++
Titolo: Ridimensionare una immagine

    Ciao a tutti.
In ambiente Windows gestisco immagini attraverso le DIB. Ora dovrei
effettuare il Resize, ma non in fase di visualizzazione tramite la
StretchDIBits, ma tramite un algoritmo che mi restituisca l'immagine
ridimensionata in un'altra DIB in modo da poterla salvare su disco.
Sono grato a chiunque possa indicarmi link a spezzoni di codice in grado di
fare quanto cerco.
Grazie in anticipo a tutti.
Vittorio

 ridimensionata in un'altra DIB in modo da poterla salvare su disco.
Forse (non ne sono proprio sicuro) puoi trovare qualcosa qui :
http://home.wxs.nl/~flvdberg/download.html
Ciao. Andrea.


Non so se e' quello che cerchi,pero' io in BCB4 o fatto cosi':
SetStretchBltMode(SmallBitmap->Canvas->Handle,HALFTONE);
    StretchBlt(SmallBitmap->Canvas->Handle, 0, 0,
               SmallBitmap->Width,SmallBitmap->Height,
               BigBitmap->Canvas->Handle, 0, 0,
               BigBitmap->Width, BigBitmap->Height,
               SRCCOPY);
Newsgroup: it.comp.lang.c++
Titolo: guida librerie I/O

Ciao, sono apprendista c++ da un pò di tempo. Ormai conosco abbastanza bene 
come lavorano funzioni, puntatori, classi, ecc. Ora però ho bisogno di 
trovare una guida abbastanza corpulenta sulle librerie input output 
(iostream, fstream...). Ho letto su libri e articoli internet sui comandi 
più comuni ma non go trovato nulla di più dei comandi getline() cin.get() 
ios::in/out ecc... Il mio obiettivo è quello di lavorare su dati provenienti 
da files e scrivervi (esempio: in base ad un file txt o dat in cui vi è 
semlicemente una matrice m x n recuperare i valori e lavorarci ---> 
determinante media righe colonne ecc.) Ho cercato molto su google e groups 
ma non ho trovato nulla nello specifico. Non chiedo la soluzione al mio 
problema ma solo un indirizzo ad una guida per librerie I/O. Grazie mille a 
chi mi aiuterà. Ciao! 

Questo e' considerato la bibbia di IOStream:
http://www.accu.org/bookreviews/public/reviews/s/s002103.htm
Questo descrive l'intera libreria standard:
http://www.accu.org/bookreviews/public/reviews/cp/cp002018.htm
Online puoi provare a guardare qui, ma non so com'e':
http://www.roguewave.com/support/docs/sourcepro/stdlibug/VIII.html
Ciao,
Nicola

spesso uso "iostream library" qui:
http://www.cplusplus.com/ref/
anche qui:
http://www.cppreference.com/cppio/all.html
-- 
int

 ha scritto nel messaggio 
news:1109065176....@g14g2000cwa.googlegroups.com...

Mille grazie ad entrambi scusate il ritardo ma sto con l' influenza.... Ora 
ci darò un occhio. Mille grazie!
Newsgroup: it.comp.lang.c++
Titolo: tempo esecuzione di una funzione

Devo fare il testing di vari algoritmi per l'elaborazione delle immagini,
in particolare di quanto tempo impiegano.
Per ora uso questo (preso spudoratam da msdn, mea culpa):
// init funzione
clock_t start, finish;
 double  duration;
 start = clock();
/* chiamate agli algoritmi , esecuzioni ecc */
 finish = clock();
 duration = (double)(finish - start) / CLOCKS_PER_SEC ;
//continua funzione
avete qualche altra idea da suggerirmi?
sopratt se dà risultati più "precisi"...
grazie, non so veram dove sbattere la testa!
arwen_h
-- 
arwen_h
/*
when you do things right, people wont be sure you've done anything at all.
*/

Dunque... Prova a cercare la parola Clock nei newsgroup di programmazione C
e C++ (usando il deja)... Vedrai che troverai parecchia roba...
Cmq... Se programmi per Windows leggi questo:
http://groups.google.com/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&frame=right&th=d3ce37360729362f&seekm=c2n5dj%24fh2%241%40newssrv.muc.infineon.com#link4
e poi cerca QueryPerformanceTimer nell'msdn.
Se invece stai programmando per Linux allora chiedi in un news di Linux.
Non esistono metodi più precisi E portabili di Clock.
--- bye

Dimenticavo, mentre cercavo, ho trovato anche questo:
inline __int64 ReadTSC()
{
 __asm RDTSC
}
E' sempre per il Visual Studio. Credo si basi sul principio che quello che
si trova in EDX:EAX viene restituito alla funzione chiamante dal VC (visto
che il return value è di tipo __int64). Sul mio Athlon due chiamate di
seguito alla funzione mi danno di solito 11 cicli.
(occhio che siamo molto molto OT)
--- bye

 Non esistono metodi più precisi E portabili di Clock.
ci sono. Basta definire cosa si intende con "portabile"
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.2.1. C, C++ and ASM developers
                               and beta testers are welcome!

 ci sono. Basta definire cosa si intende con "portabile"
Per portabile intendevo dire "ISO/Ansi C++ e/o C99"... Dopotutto tutto il
resto è per definizione meno portabile (a meno che non sia a sua volta
costruito su tali basi) (tralasciando il fatto che neanche il C++ non è
portabile, perchè probabilmente non esistono compilatori decentemente
conformanti per varie architetture)
--- bye
Newsgroup: it.comp.lang.c++
Titolo: messaggi e hook per l'accesso ai file?

perchè non trovo nessun hook da istallare per l'accesso ai files?? e i
messaggi (di comando e di notifica) che riguardano la creazione , la
cancellazione e l'accesso ai file dove sono? quali sono ? perchè non sono
elencati assieme agli altri? vengono trattati in maniera diversa?
grazie
Salvo

elencati assieme agli altri? vengono trattati in maniera diversa?
Forse se ci chiarisci di che sistema stai parlando possiamo esserti
un filino piu` utili, chissa`.  Se per caso hai in mente Win32, in essa
non vi e` alcun messaggio corrispondente all'attivita` sui file, le API
relative ai file non mandano messaggi; su 
www.sysinternals.com
puoi pero` trovare un interessante programmino, in due versioni
separate per NT e 95/98, che tiene d'occhio l'attivita` di filesystem
interagendo con i rispettivi kernel nei diversi modi richiesti.  Sulla
maggior parte degli Unix penso che non ci sia niente da fare; su
alcuni Unix, e su Linux, forse esistono agganci non standard che
potresti usare.  Su Dos, potresti provare a fare un TSR che
agganci l'INT21H e registri le operazioni richieste attraverso di
esso per poi passarle al vero gestore di 21H (il Dos).
Alex

interagendo con i rispettivi kernel nei diversi modi richiesti.  Sulla
si, è proprio per win32 che cercavo questo hook... visto che
molte operazioni che fa windows vengono gestite da msg,
pensavo ci fosse anche l'attività dei file... peccato!
cmq grazie, ora vedrò quel programmino
ciao
Salvo

cmq grazie, ora vedrò quel programmino
Prego.  Comunque tieni presente che i messaggi sono
tipicamente usati per operazioni _su finestre_, oppure
per serializzare su di un singolo thread operazioni che
di per se sarebbero invece multithreaded; il primo caso
riguarda sostanzialmente operazioni di User32 o Gdi32,
il secondo e` un trucchetto usato ad esempio da COM,
ma solo se un servente non si dichiara free-threading.
Le tipiche operazioni "di kernel" (gestione di memoria
virtuale, file, meccanismi di comunicazione fra processi,
oggetti di sincronizzazione, eccetera eccetera) non
fanno normalmente uso di messaggi, se non in qualche
caso per la serializzazione come appena detto (ma anche
molte operazioni asincrone, tipo l'I/O "overlapped", non
usano messaggi ma callback -- richiedendo quindi al
codice cliente, non necessariamente di essere free
threading, ma sicuramente di essere "rientrante").
Alex
Newsgroup: it.comp.lang.c++
Titolo: Pipe tra comandi

Salve,
e'da poco tempo che mi avvicino al C++, ed avrei un piccolo quesito da
porre.
Ho un programma che prende in ingresso due stringhe (da riga di comando), e
un secondo programma (simile al type di dos, dato un file stampa a video
tutte
le righe).
Come posso implementare una pipe tra i due? Mi spiego meglio .... come
faccio ad
ottenere una cosa del tipo mioprogramma_1.exe | mioprogramma_2.exe, che
l'output di
uno diventi l'input di un'altro?
Grazie e buon lavoro.

 uno diventi l'input di un'altro?
A sboccio direi esattamente come hai scritto...
Oppure tu intendi del codice che apra un processo come pipe?
Nel caso dentro cstdio e` definita la funzione popen. Altri metodi 
'standard' non ne conosco... se volessi parlare di programmazione 
GNU/Linux, it.comp.os.linux.developement, se win it.comp.programmare.win32.

 uno diventi l'input di un'altro?
Supponendo che i due programmi debbano essere del tutto indipendenti e
quindi che non sia possibile far lanciare il secondo programma dal primo
valuta la possibilità di utilizzare all'interno di un terzo programma (es.
pipe.exe) comandi del tipo system, ShellExecute, popen (in verità poco
portabili, quindi valuta anche questo).
Questo programma potrebbe accettare due parametri :
pipe  -mioprogramma_1.exe -mioprogramma_2.exe
e lanciare il secondo solo dopo che il primo ha emesso il suo output.
Ciao
Andrea

 popen 
Definita nella libreria standard :))


La funzione popen è definita nel file stdio.h, ma non nella libreria
standard (ANSI/ISO) del C e tantomeno del C++.
Per la precisione si tratta di un'estensione all'ISO C standard (POSIX.1)
che viene supportata solo dalla maggior parte dei sistemi Unix-compliant.
Infatti popen è un'istruzione che tipicamente funziona sotto sistemi
Unix/Linux, ma sotto MSWindows è stata rimpiazzata dalla _popen
Quindi la portabilità non è garantita.

 standard (ANSI/ISO) del C e tantomeno del C++.
Chiedo perdono. Non avevo sotto mano lo standard, ma ricordavo di averla 
vista sia sul K&R[0] che nella cstdio.
Spiace di avere dato un'informazione errata.
 > Infatti popen è un'istruzione che tipicamente funziona sotto sistemi
 > Unix/Linux, ma sotto MSWindows è stata rimpiazzata dalla _popen
in pratica dovrei lavorare di #ifdef?
 > Quindi la portabilità non è garantita.
Ok...
------
[0] Peraltro sul K&R non ne ho ritrovato traccia, ragion per cui ritengo 
fosse un altro manuale.

 in pratica dovrei lavorare di #ifdef?
Credo proprio di si :o(
Poichè i parametri sono gli stessi, nel caso della popen, dovrebbe bastare
scrivere questo:
#ifdef WIN32
#define popen   _popen
#endif
Ciao
Andrea

 portabili, quindi valuta anche questo).
system non è portabile ?
(chiedo, non no ho idea)
-- 
alef

...

system di per se e' standard; la stringa che gli passi e'
presumibilmente specifica del sistema su cui lavori.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Object-Oriented Parallel Environments Conference

The International Symposium on Computing in Object-Oriented Parallel
Environments conference will be held in Santa Fe New Mexico from
December 8-11, 1998 at the Eldorado Hotel. This conference will focus on
the broad range of topics which address object-orientation,
parallelism and high-performance applications which spans
government research institutions, academic institutions, and commercial
developers. 
See 
http://www.acl.lanl.gov/iscope98
 for information on Call for Papers.
Important Dates: 
   1.Electronic Full paper submission due: April 24, 1998 
   2.Author Notification: June 26, 1998 
   3.Final paper due: July 24, 1998
Conference: December 8-11, 1998, Santa Fe, New Mexico

...


Newsgroup: it.comp.lang.c++
Titolo: serializzazione oggetti in borland c++ 4.0

ciao a tutti,
volevo sapere se esiste un modo semplice per serializzare oggetti (non
di tipo TComponent). 
Gli oggetti in questione contengono come campi tipi di dati non
fondamentali.
Graie in anticipo a chiunque mi risponda!
------------------------------------------------------------------------------------
Fai un programma che anche un idiota puo' usare, e soltanto un idiota
vorra' usarlo.
(Shaw)

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

On 26 Feb 2004 04:33:56 -0800, Nicola....@ObjectWay.it (Nicola
Musatti) wrote:

Ciao,
a me non interesserebbe un'implementazione specifica. Mi piacerebbe
sapere in C++ come si gestisce la serializzazione, indipendentemente
dall'ambiente di sviluppo. Di questo posso discutere in questo
newsgroup?
Ciao e grazie!


 (Shaw)
Ci sono molti piu' idioti che persone intelligenti (Gates) :-)
Newsgroup: it.comp.lang.c++
Titolo: reinterpret_cast

vi prego... per favore... come converto la seguente riga da C++ a C?
pb=reinterpret_cast<BYTE*>(malloc(dwDim));
e' davvero importante!! 
giuro che per una settimana metto l'indirizzo della homepage di
chiunque mi aiuta nella mia firma!
grazie davvero
Francesco Mapelli ( 
mape...@tin.it
 )
il contakm per il mouse:
http://members.xoom.com/mousestats
sito comune programmatori vb
http://members.xoom.com/it_lang_vb

...


...


 pi = (int*)pb;    // lo casti a int* e lo usicome tale
Mi sfugge qualcosa o non sarebbe piu' semplice:
    pi=(int*) malloc(dwDim);
direttamente ?
Ciao
Gian Michele Bertoni
--
Home Page: 
http://space.tin.it/computer/gbertoni

Mi sfugge qualcosa o non sarebbe piu' semplice:


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

Ragazzi, guardate un pò questo programme per trovare le radici di un
equazione di 2° grado....
Dove ho sbagliato?
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void main ()
{
int a=0, b=0, c=0, x1=0, x2=0, DELTA = ((b*b)-(4*a*c));
cout << "Inserire il coefficiente a  ";
cin >> a;
cout << "Inserire il coefficiente b  ";
cin >> b;
cout << "Inserire il coefficiente c  ";
cin >> c;
x1 = ((- b ) - sqrt ( DELTA ))/(2*a);
x2 = ((- b ) + sqrt ( DELTA ))/(2*a);
if ( DELTA > 0 ) {
cout << "I valori di x sono  ";
cout <<(x1)   ;
cout <<(x2)  <<endl;
                 }
else if ( DELTA = 0 )  {
x1 = x2;
cout << "La soluzione doppia e'  ";
cout << x1 <<endl;
                       }
else {
cout << "Non ci sono soluzioni reali " <<endl;
     }
system ("PAUSE");
}

 x1  ((- b ) - sqrt ( DELTA ))/(2*a);
e qui secondo te quanto vale DELTA visto che non lo riassegni?
Quello che volevi fare era una funzione DELTA:
int Delta(int a, int b, int c) {
    return (b*b)-(4*a*c);
}
e allora puoi scrivere:
x1((-b) -sqrt( Delta(a,b,c)))/(2*a);
Ciao
Gaetano.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:f9TG7.51874$sq5.2...@news.infostrada.it...


Dopo che ti sei fatto dare i valori ripeti
DELTA = ((b*b)-(4*a*c));
CIAO


C'entra poco, comunque, a parte gli errori che ti hanno fatto notare, ti
suggerisco di calcolare le radici (reali) diversamente:
- una usando il delta: x1= (-b - sqrt(delta))/2a
- l'altra come c/x1
Ciao.
Newsgroup: it.comp.lang.c++
Titolo: Domanda su rand()

Salve, qualcuno mi può spiegare perché
int( (double(rand()) / RAND_MAX) * n )
per la generazione di un numero casuale tra 0 e n dovrebbe essere più
efficiente di un semplice rand() % n ?
Grazie,
Bruno

 efficiente di un semplice rand() % n ?
perche' i low bits della maggior parte dei generatori sono non-random
in un modo assolutamente imbarazzante.  non e' difficile che rand()%2
dia una serie alternata di 0 e 1 assoultamente prevedibile.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 dia una serie alternata di 0 e 1 assoultamente prevedibile.
Inoltre rand() % n ha una preferenza per i numeri bassi, mentre nella int( 
(double(rand()) / RAND_MAX) * n ) la media rimane sempre il piu' vicino 
possibile a (n-1)/2.
--*PaN!* 

 
Concordo, e anche se l'OP chiedeva informazioni sull'efficienza delle 
due varianti, direi che spesso per un generatore di numeri (pseudo) 
casuali e' piu' importante la "qualita'" della generazione.
--
Roal Zanazzi
Newsgroup: it.comp.lang.c++
Titolo: [HELP] Cancellare file da applicazione console

Ciao :-)
Ho bisogno di cancellare un file (.txt per la precisione) durante
l'esecuzione del programma.
Come posso fare?
Grazie in anticipo, spero che la domanda non esuli dallo standard, alla
prox. ;-)
--
sav(at)
despammed.com

 l'esecuzione del programma.
In realtà è codice C, comunque:
NAME
       remove - delete a name and possibly the file it refers to
SYNOPSIS
       #include <cstdio>
       int remove( const char *pathname );
DESCRIPTION
       remove  deletes  a  name  from  the  filesystem.  It calls
       unlink for files, and rmdir for directories.
CONFORMING TO
       ANSI C, SVID, AT&T, POSIX, X/OPEN, BSD 4.3
---
Azathot

 Azathot

 On Thu, 06 Feb 2003 21:48:36 +0000, sav wrote:
[CUT]
Ho risolto, errore mio :-))
Grazie, ciao!

Newsgroup: it.comp.lang.c++
Titolo: [?] Creare una DLL con BC++ 4.5 per VB

Ciao a tutti,
    ho perso alcune ore tentando di far vedere una funzione messa in una DLL
compilata con il BorlandC++ 4.5 (Dll dinamica per Win 32) ma ottengo il
seguente errore da VB
"Can't find DLL enty point Incrementa"
credo ci sia un qualche problema nella DLL di cui riporto il sorgente
(Breve)
#include <windows.h>
DWORD __export CALLBACK Incrementa(DWORD dwNumero)
{
     /* incremento di dwNumero */
     dwNumero++;
     return dwNumero;
}
Non fa nulla di utile ma voglio solo vedere come si fa.
Grazie a chiunque mi aiuti.
    Alessio C.

...


 Davide
Avevo gią provato ma ho riprovato e l'errore non cambia
ecco la modifica fatta:
BOOL WINAPI DllEntryPoint (HINSTANCE  hinstDLL,DWORD  fdwReason,LPVOID
lpNot)
{
 return TRUE;
}
DWORD __export CALLBACK Incrementa(DWORD dwNumero)
{
   /* incremento di dwNumero */
   dwNumero++;
   return dwNumero;
}
Che devo fare????
Grazie mille comunque.
    Ciao
    Alessio C

 Che devo fare????
Usare it.comp.programmare.win32 .
-- 
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: Multi-Thread

Salve  a tutti. Benché programmi da diverso tempo in c++ non ho ben chiaro
il concetto di Thread, ne tantomeno di Multi-Thread. Qualcuno può
gentilmente chiarirmi le idee?
Grazie anticipatamente

 gentilmente chiarirmi le idee?
Sei un po' OT, btw:
Un thread e` anche definito come "lightweight process" (processo
leggero).
Per ogni processo viene allocato uno spazio di indirizzamento virtuale
e viene riservato un metodo d'accesso (in genere protetto) al
processore, alla memoria, ai file, ecc.
Un thread condivide lo spazio di indirizzamento e le risorse del processo 
che l'ha generato (sebbene abbia un proprio stack per l'esecuzione).
Ad ogni thread puo` essere associato un stato (in esecuzione, in attesa,
terminato, ecc) e piu` thread vengono eseguiti in maniera concorrente.
I vantaggi di un thread rispetto ad un processo sono:
* minor tempo di crezione e di distruzione
* minor tempo di switching 
* facilita` di comunicazione tra thread
* uso piu` efficiente dei sistemi multiprocessore
* uso di meno risorse del sistema
Lo svantaggio e` che bisogna fare molta piu` attenzione nella
programmazione multithread, per fare in modo che nessun thread acceda ad
area di memoria di un altro o che due thread accedano contemporaneamente
alla stessa risorsa.
Ovviamente il discorso non si esaurisce qui, cerca con goggle e troverai
un sacco di materiale
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La differenza fra l'intelligenza e la stupidita'?
All'intelligenza c'e' un limite.
Newsgroup: it.comp.lang.c++
Titolo: Aiuto per Borland C++ per Win

Ciao,
ho la necessita' di disabilitare a tempo di esecuzione alcuni oggetti 
(es. bottoni o finestre di edit) creati a partire dal compilatore di risorse.
Premetto che ho provato diverse sequenze di funzioni senza successo e che la 
cosa mi riesce usando le MFC ma in questo caso sono costretto a 
utilizzare le classi OWL di Borland.
Ringrazio anticipatamente chi mi sapra' qualsiasi tipo di indicazione.
Per favore rispondetemi anche in email perche' saro fuori Pisa per le 
festivita Natalizie.
Filippo. 

utilizzare le classi OWL di Borland.
Semplicissimo:
nel costruttore della TDialogDerivataONo che implementa i controlli,
istanzia un oggetto di aliasing per ogni controllo che vuoi "controllare"
(passami la ripetizione)
Poi usa l'istanza creata per pilotare il controllo.
Esempio:
class TMyDialog : TDialog {
public:
    bla, bla, bla
protected:
    TEdit * myEdit;
    TButton * myButton;
};
TDialog::TDialog(........)
{
    myEdit = new TEdit(this, IDC_DEL CONTROLLO);
    myButton = new TButton(this, IDC_DEL_BOTTONE);
}
/* Esempio per disabilitare la edit e nascondere il bottone */
void TDialog::DisabilitaTutto()
{
  myEdit->EnableWindow(false);
  myButton->ShowWindow(SW_HIDE);
}
Ciao e buon lavoro con OWL
WIWA OWL
~~~~~~~~~~~~~~~~~~~ Stefano Mazzotti ~~~~~~~~~~~~~~~~~~~~
from Faenza, Ravenna, Italy
Email: 
smaz...@racine.ra.it
 | 
smaz...@geocities.com
Web:   
http://www.geocities.com/SiliconValley/Lakes/2799
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 
Ma sei sicuro che funziona?
la funzione membro GetDlgItem(IDC_BOTTONE) ritorna un HWND e non un 
TWindow *, di conseguenza non mi compila neanche.
Filippo.
Newsgroup: it.comp.lang.c++
Titolo: DAMANDONE DA 10M DI $$$$$$$ AIUT!!!!!

Come posso fare per ottenere tutti i file in una directory SENZA utilizzare
controlli visivi tipo borland o mfc e che siano anche prensenti sul gcc
nelle lib standard??? (quindi unix compatibile)
e (magari) ottenere anche subdiretory?
e inoltre se possibile filtrarli con le maledette wildcards?
Chiedo troppo dalle lib std eh?
...


Esistono delle funzioni nella libreria "standard" C (non so
quanto siano standard, ma si trovano in libc.a su unix)
per accedere alle directory:
opendir(), readdir(), telldir(), seekdir(), rewinddir(), closedir() 
sono abbastanza semplici da usare (dovresti cavartela con un paio di
"man")
Queste funzioni sono presenti nello standard POSIX a cui si conformano
(si dice cosi' ? non credo ;-) Unix e OS/2.
Non so se anche per Windows esiste una libreria POSIX o qualcosa del
genere.
Se ci fosse, saresti a cavallo.
Per filtrare le directory esiste scandir() (che pero' non e' POSIX)
a questa funzione vengono passati come parametri, oltre al path della
directory interessata un paio di funzioni, una per filtrare e l'altra
per ordinare le entry che superano il filtro.
Comunque sono funzioni C e non C++ (quindi siamo completamente OT)
*Fabio*
-- 
Life is just a bowl of cherries, but why do I always get the pits?

Chiedo troppo dalle lib std eh?
non credo che la lib standard preveda qualcosa...
inoltre ci sono delle forte differenze tra i vari s.o., ad
esempio in unix le wildcards sono convertite dalla shell,
il programma riceve direttamente i nomi dei file; sotto
dos/windows il compito di convertire le wildcards e`
invece a carico del programma.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Always On Top

--
Willy Gardiol
gar...@iol.it
www.poli.studenti.to.it/~s92884
mirror = 
users.iol.it/gardiol
non vorrei essere un po' off-topic, ma...
COME faccio con CBuilder3 a far si che una form abbia tale caratteristica
(always on top)?
Se uso il flag di Builder (fsOnTop) funziona ma solo all'interno
dell'applicazione, una altra applicazione puo' sovrapporsi al mio form. Se
uso la SetWindowPos sembra non succedere nulla.
Come posso fare?
grazie.


Non so perche' ti sembra che "SetWindowPos" non funzioni, ma in alcuni
programmi che avevo fatto a suo tempo, questa funzione lavora perfettamente.
Prova questo:
SetWindowPos(hWnd,
                    (flTop) ? HWND_TOPMOST : HWND_NOTOPMOST,
                    0, 0, 0, 0,
                    SWP_NOMOVE | SWP_NOSIZE);
dove hWnd é l'handle della window e flTop é un BOOL che specifica se deve o
no essere "TopMost".
I flags SWP_NOMOVE e SWP_NOSIZE fanno in modo che tu non debba specificare
la posizione e il size della window che rimarranno invariate (Decidi tu se
vuoi o meno specificare le coordinate).
Resta sottinteso che se altre windows hanno l'attributo WS_EX_TOPMOST
settato, queste potranno coprire la tua window a dipendenza dello
"Active State" e del "Focus" delle stesse.
In breve, tutte le windows "TopMost" si trovano "sopra" le non "TopMost" ma,
fra di loro, si comportano come le non "TopMost".
Saluti, Neil

Newsgroup: it.comp.lang.c++
Titolo: Classe di oggetti non copiabili

Quale scegliereste voi tra queste due soluzioni?
1. Fare una classe (non istanziabile) non copiabile, da cui ereditare
privatamente:
class Uncopyable
{
  protected:
    Uncopyable() {}
    virtual ~Uncopyable() {}
  private:
    Uncopyable(const Uncopyable &);
    Uncopyable & operator=(const Uncopyable&);
};
class MyClass : private Uncopyable { ... };
2. Una macro da chiamare nel private: della classe che si vuole
rendere non copiabile
#define DISALLOW_COPY_AND_ASSIGN(ClassName)  \
  ClassName(const ClassName &);              \
  void operator=(const ClassName &)
class MyClass {
private:
	DISALLOW_COPY_AND_ASSIGN(MyClass);
};
Pleg

 
La prima. Di solito io uso boost::noncopyable (Boost.Utility).
MM

 La prima. Di solito io uso boost::noncopyable (Boost.Utility).
Motivi della scelta?
Anch'io faccio cosi', ma la seconda l'ho trovata sulla Google C++
Style Guide:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Copy_Constructors
e mi chiedevo quali fossero le differenze.
Pleg

 Style Guide:
Ho usato la seconda per qualche tempo, poi sono passato alla prima per i
seguenti motivi:
 1. � usata in Boost, e io cerco di adeguarmi allo stile di Boost
 2. � sicuramente pi� leggibile
 3. non comporta l'uso di #define
Max