mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: puntatori a membri di classe

un saluto a tutti.
ho un problema con il seguente programma:
#include <iostream.h>
typedef int Func (int);
int printit (Func *);
class myClass {
  public :
  myClass() ;
  Func function ;
} ;
myClass::myClass () {
  printit(function);
}
int myClass::function(int i) {
  cout << "i = " << i << "\n" ; 
}
int printit (Func *func) {
  int i = 100 ; 
  func(i) ;
}
main () {
  new myClass ;
}
se provo a compilarlo il compilatore risponde
main.cc:15: passing `int (myClass::*)(int)' as argument 1 of
`printit(int (*)(int))'
se d'altra parte modifico cosi' il costruttore 
myClass::myClass () {
  printit((Func_ptr)function);
}
il programma viene compilato ma i parametri con cui richiamo la funzione 
(dall'interno di printit()) vanno a farsi benedire.
potrei dichiarare function() all'esterno della classe ma in questo 
modo non posso utilizzare il puntatore this a meno di passarlo come
ulteriore parametro
(cosa piuttosto seccante).
il problema scompare se dichiaro static il metodo funcion() ma anche in 
questo caso perdo i vantaggi del puntatore this, 
modificare la funzione printit() non e' possibile perche si tratta in
realta' 
di una funzione di libreria.
qualche idea ??
grazie in anticipo, 
Alessandro.

 (int*)(int) e' diverso da (int myClass::*)(int)
questo l'avevo capito, 
quello che cercavo era un modo per convincerlo a 
passare quel puntatore, non c'e' proprio ??
ciao, 
Alessandro.

Il tipo di una funzione membro e' diverso dal tipo di una funzione non
membro (ricordati che le funzioni membro passano anche this).
Il problemma e' tutto Li'.
le soluzioni sono due:
ridefinire il tipo di funzione per usare:
typedef int Foo*(int, MyClass*);
e poi fare un wrapper:
inline int MyClass::wrapper(int value, Foo the_function)
{ return (*the_function)(value, this); }
oppure definire Func come 
puntatore a funzione membro di MyClass che ritorna int avendo come
parametro int. 
typedef int (MyClass::*Funct)(int);
ti rimando alla sezione 5.4.5 di B. Stroustroup the C++ Programming
Language per maggiori chiarimenti.
Spero ti sia di aiuto.

Newsgroup: it.comp.lang.c++
Titolo: pulizia dello schermo

Ciao, se programmi sotto DOS eccoti la soluzione :
includi la libreria standar del C (stdio.h). in quella libreria c'è una funzione che ti permette di usare un comando del sistema operativo usato dal programma e il DOS ha il comando "cls" per ripulire lo schermo. la sintassi della funzione è :
system("comando");
di conseguenza per lo scopo che vuoi tu:
system("CLS");
se non usi il DOS devi leggerti il manuale del Sistema Operativo e poi scrivere l'apposito comando al posto di CLS.
ciaoooooo
----------------------------------------------
Virgilio Mail - Il tuo indirizzo E-mail gratis
http://mail.virgilio.it
--
Posted from [212.48.4.47] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Con queste soluzioni poi ci lamentiamo dei pessimi programmi che si
trovano in giro...
La risposta corretta sarebbe quella di vedere cosa fa il CLS e
'riportarlo' nel proprio programma.
Penso comunque che mandi un particolare codice o sequenza ASCII (che
non ricordo) alla console...
Luc.


Non dovrebbe funzionare con un
cout << char(26);
???
--
***********
Joyce
ICQ# 10607234
Per una pera, una pera cazzo...
per affrontare questa lunga giornata dura !
***********
Luc <TOGL...@nip1.it-TOGLI> wrote in message
23c4qsghhl033n1oq...@4ax.com...


invece la tua risposta è perfetta
ma per favore :)))))))
--
Programmazione e giochi in rete
http://gameprogramming.cjb.net/
"Luc" <TOGL...@nip1.it-TOGLI> ha scritto nel messaggio
news:23c4qsghhl033n1oq...@4ax.com...


ma per favore :)))))))
Era solo incompleta, dato che non sviluppo piů per DOS da anni...
Ciao, Luc.
PS: se ti serve la lista dei file in una directory tu redirigi il
'dir' su un file e poi lo leggi???? Che schifo....

 'dir' su un file e poi lo leggi???? Che schifo....
Qual'e' il *modo* *portabile* di farlo?  Il C++ non ha il concetto di
directory etc. etc. (vedi il mio post precedente).  Devi assumere
almeno uno standard POSIX o qualcosa di equivalente.  E non e'
necessario ridirigere su file; normalmente si pipa in memoria (man
popen).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

popen).
Volevo stare sul semplice, visto che il thread lo 'richiedeva'...
Luc.

 
In C++ standard no. Ma nessuno usa esclusivamente il C++ standard per
scrivere ogni singolo elemento di un'applicazione. Dirò una banalità, ma
la chiave per la portabilità non è nell'uso esclusivo di funzioni
standard, quanto nella capacità di definire astrazioni adeguate e
circoscrivere e controllare il codice specifico per la/e piattaforma/e.
Nel caso in questione (lettura file di una directory) io normalmente uso
classi fatte da me che espongono interfacce sullo stile dei contenitori
della libreria standard. Con un approccio di questo tipo e
un'implementazione multi-piattaforma esiste dir_it delle librerie boost:
 
http://www.boost.org/libs/dir_it/index.htm
Max
Newsgroup: it.comp.lang.c++
Titolo: Cerco programmatore per singolo lavoro

Cerco un programmatore che sappia relaizzare un breve programma in unico
eseguibile (non VB), operante in ambienti windows.
Capacità richiesta: media
Ulteriori informazioni in email.
SGST srl - Sicurezza e igiene del lavoro
Gruppo Bernieri        Homepage  
http://www.bernieri.it
Email: 
sg...@bernieri.com
C.so Sempione 76
20154 Milano
Fax. 02700449464
-- 
Posted from 
mail01.san.yahoo.com
 [209.132.1.35] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:001301c0c1c3$d11b88c0$f3470b3e@sgst...


 Ulteriori informazioni in email.
Oltre a essere OT non dice manco di che si tratta. E neppure il concetto di
"unico eseguibile" e' chiaro. E men che meno il perche' non debba essere in VB.
Almeno richiedessi l'uso di C++!
E se te te lo faccio in Python? O Java? O Smalltalk?
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Newsgroup: it.comp.lang.c++
Titolo: Problemi col compilatore

Volevo informazioni dettagliate su come si installano correttamente il
compilatore della borland, l'ambiente di sviluppo integrato quincy 2000 e
Under c++. In più volevo sapere come si fa a far girare il compilatore
della borland e Under c++(in particolare Under c++!)sotto quincy 2000. 
***************************************
messaggio inviato tramite HostSearch.it
---------------------------------------
---> 
http://www.hostsearch.it/newsgroup
***************************************

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

 Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
[CUT]
PLONK
Feyen

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

salve ho da sottoporvi un problema:
utilizzo da pochissimo il turbo c++ della borland e ho riscontrato subito un
problema, quando vado a compilare un programma usando il comando
#include <iostream.h>
mi dà una moltitudine di errori di sintassi nel file iostream.h
perchè?
vi prego aiutatemi non so come fare
Grazie a tutti
Ciao

 ha scritto nel messaggio
news:8tn6ia$sda$1...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c++
Titolo: estrarre numero da una stringa, e ottenere anche il resto della stringa

Salve a tutti
stavo cercando di fare una funzione che estraesse da una stringa contenente
cifre un intero.
Googolando trovo
http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.2
dove c'è scritto come implementare una semplice funzione che faccia al mio
caso.
l'unica mia "aggiunta" è stata nell'usare i template (ma la cosa non c'entra
granché col mio problema).
template <typename T> inline T string_to(const std::string& s) {
    std::istringstream converter(s);
    T ret;
    char c;
    if (!(converter >> ret))
        throw std::runtime_error("Error converting from `" + s + "'");
    return ret;
}
ora, questa funzione "funziona" :)
Quello che vorrei, però, è che, in caso di successo, la stringa s venga
modificata rimuovendone i caratteri estratti.
Come posso ottenere questo?
-- 
By ZeD

 }
Avendo passato s per riferimento, il risultato è accessibile al chiamante
leggendo la stringa fornita. Non c'è bisogno di verificare se lanciare
un'eccezione visto che convertire una stringa in una stringa è
un'operazione abbastanza sicura.
Ovviamente ci sarebbero modi più eleganti: definire una struttura di dati da
restituire, per esempio, o magari farne una classe dove mettere un
costruttore che fa il lavoro di string_to passandogli una stringa come
argomento.
Ciao,
-Federico

       converter >> s;
Lo pensavo anch'io, ma non va:
$ cat prova.cc
#include <iostream>
#include <sstream>
#include <stdexcept>
template <typename T> inline T string_to(std::string& s) {
    std::istringstream converter(s);
    T ret;
    if ((converter >> ret).fail())
        throw std::runtime_error("Error converting from `" + s + "'");
    converter >> s;
    return ret;
}
int main() {
    std::string ss[] = { "32", "32a", "a" };
    for (unsigned i=0; i<3; i++)
        try {
            std::cout << "`" << ss[i] << "' -> " << string_to<int>(ss[i]) <<
                    " + `" << ss[i] << "'" << std::endl;
        }
        catch (std::runtime_error e) {
            std::cout << e.what() << std::endl;
        }
}
$ g++ -W -Wall -pedantic -ansi prova.cc && ./a.out
`32' -> 32 + `32'
`a' -> 32 + `a'
Error converting from `a'
$
Nel secondo e nel terzo caso la funzione si comporta come mi aspetto, ma
perché nel primo caso in s rimane "32"? 
-- 
By ZeD

 perché nel primo caso in s rimane "32"?
No, è sbagliato anche il secondo caso: all'inizio ci sarebbe dovuto essere
`32a'.
Ciao,
-Federico

 `32a'.
...e sono anche cecato >_<
(come scusante c'è che guardavo soprattutto a destra, non a sinistra, ma sì,
questo è un errore idiota che potevo risparmiarmi)
-- 
By ZeD
Newsgroup: it.comp.lang.c++
Titolo: Iteratori e post incremento

In tutti i "testi sacri" si raccomanda di utilizzare sempre il 
preincremento sugli iteratori, in quanto il postincremento produce 
codice meno efficiente.
Inoltre in pratica mi sembra che qualsiasi pezzo di codice che usa il 
postincremento possa essere sostuituito da codice che usa il 
preincremento più efficiente (o al limite ugualmente efficiente).
A questo punto la mia domanda: per evitare errori e confusione negli 
utenti meno smart, non sarebbe stato meglio non definire del tutto il 
post negli iteratori?
Sto progettando una mia libreria e sono realmente intenzionato a non 
definire il postincremento per i miei iteratori, così che i miei utenti 
non si possano sbagliare. A quali inconvenienti posso andare incontro? 
Esistono forse algoritmi STL che usano il postincremento (in questo caso 
i miei iteratori non sarebbero usabili con tali algoritmi)?
GM

 post negli iteratori?
L'opportunità di usare il C++, quando si è "meno smart" è già
abbastanza opinabile.
Secondo me è un discorso di coerenza: se esiste il preincremento, deve
esistere il postincremento.

 i miei iteratori non sarebbero usabili con tali algoritmi)?
Se vuoi che i tuoi siano iteratori nel senso che usa la libreria
standard devono soddisfare tutti i requisiti e non dipendere da
ipotetici dettagli di come e' realizzata una particolare versione
della libreria standard.
Ciao,
Nicola

 della libreria standard.
Questo purtroppo me lo immaginavo.
una "soluzione" potrebbe essere quella di dichiararli come "deprecati" 
(il mio compilatore lo consente), ma credo che (visto che tuttosommato 
si tratta di una libreria per uso interno) una volta appurato che la 
*mia* STL non usa mai il post (o meglio non lo usa mai nei casi che mi 
interessano), casserò il post di brutto.
Vedi nel mio caso si tratta di una libreria per l'elaborazione delle 
immagini e l'iteratore verrebbe usato per scandire i pixel delle 
immagini (cioè milioni di iterazioni come ridere)
Se anche costasse pocopoco in più rispetto all'iterazione brutale con un 
puntatore in memoria, non ne varrebbe la pena.
Nel mio caso le prestazioni sono un vincolo assoluto e voglio evitare a 
tutti i costi "disottimizzazioni gratuite". Quello che stò cercando di 
fare è avere una cosa stilisticamente pulita e accettabile, ma senza 
NESSUN prezzo sulle prestazioni.
GM
Newsgroup: it.comp.lang.c++
Titolo: Aiuto DLL

Ciao a tutti, spero proprio che tra i lettori del ng esista ancora un buon
samaritano...
Da qualche tempo sto cercando di creare una stupidissima DLL che contenga
due o tre funzioni del tipo:
int Somma(int a, int b) {return a+b}
long Prodotto(long a, long b) {return a*b}
CString Concatena(CString a, CString b) {return a+b}
... e cosi' via...
la DLL, uso Visual C++ 5, riesco a crearla e la copio in winnt\system32
i problemi emergono quando cerco di utilizzarla:
vorrei infatti utilizzarla da Visual Basic 5...
ho dubbi/problemi riguardo a:
1) il passaggio dei parametri, int (c++) non è uguale a int (vb), cosi' come
long e CString...
2) le funzioni esportate, mi sembra di capire, vengono viste da vb con un
@dim finale dove dim e' il numero di byte totale utilizzato dai parametri...
3) nel codice C++ dovrei usare _stdcall, ma non funziona comunque...
spero di ricevere qualche risposta, ho gia' controllato l'help sia di vb che
del Visual C++,
se qualcuno l'ha sottomano o riesce a farlo in due minuti, sarei contento di
ricevere il codice sorgente della DLL, poi la compilo io...
Grazie per l'attenzione, la pazienza, la sopportazione
Ciao Davide
pir...@tin.it

ricevere il codice sorgente della DLL, poi la compilo io...
Il codice della DLL e` il meno, ad esempio:
extern "C" __declspec(dllexport)
long __stdcall
somma(long a, long b)
{
    return a+b;
}
Supponi di compilare e linkare questo come C:\pippo\debug\dllex.dll.
Ora, in Visual basic, puoi avere del codice tipo:
Option Explicit
Private Declare Function somma Lib _
    "c:\pippo\debug\dllex.dll" _
    Alias "_somma@8" _
    (ByVal a As Long, ByVal b As Long) _
    As Long
Private Sub Command1_Click()
Dim a As Long, b As Long, c As Long
a = Text1
b = Text2
c = somma(a, b)
Label1 = c
End Sub
supponendo ad esempio che la tua form abbia due
campi di immissione text1 e text2, una label label1,
e un bottone command1 al cui click il tutto va...
Alex

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

Salve a tutti.
Stò iniziando a studiare il Borlad Builder C++ 6.
Qualcuno sà dove posso reperire informazioni ?
Grazie.
ric

 Qualcuno sà dove posso reperire informazioni ?
Sul mulo si trovano un paio di libri specifici per BCBuilder.

> Sul mulo si trovano un paio di libri specifici per BCBuilder.
Grazie per aver risposto.... ma non capisco.
Cosa vuol dire : sul mulo?

 Cosa vuol dire : sul mulo?
eMule... scaricalo, installalo, cerca "Builder" e scarica i file che ti 
servono :-)

Riccardo Maffei ha scritto:

Newsgroup borland sul C++ builder
http://info.borland.com/newsgroups/ng_cbuilder.html

Io ho avuto un sacco di problemi con C++ Builder perchè di solito le
librerie che trovi precompilate con altri compilatori non gli piacciono
(anche se esiste un convertitore, non funziona sempre)..
Prova Dev C++:
http://www.bloodshed.net/devcpp.html
Newsgroup: it.comp.lang.c++
Titolo: Errore cast

Ciao a tutti, avrei un problema di casting.
Ho implementato un oggetto che rappresenta uno smart pointer (AutoPtr) e uno 
che rappresenta un delegate (Delegate).Siccome, nell'applicazione che sto 
sviluppando, mi interessava intercettare gli eventi di Windows anche fuori 
dalla WndProc, ho sviluppato una sorta di WindowsManager che, oltre che 
crearmi la finestra, mi permette di legare, per ogni evento di Windows che 
mi interessa, una lista di AutoPtr< Delegate< void, IEventParams& > >
In questa maniera chiunque può legare una funzione (tramite il delegate) a 
un determinato evento.
Nella WndProc, allo scatenarsi dell'evento riempio un classe specifica 
derivata da IEventParams e la passo come parametro a tutti i delegate legati 
all'evento...spero di essermi spiegato bene.
Comunque, vengo al dunque:
La funzione per legare un delegate a un evento ha questo prototipo:
void BoundDelegateToEvent( E_WINDOW_EVENT i_windowEvent, AutoPtr< Delegate< 
void, IEventParams& > >& i_delegate );
Il primo parametro è un enum che rappresenta l'evento, il secondo è un 
puntatore a un delegate che "binda" una funzione che restituisce un void e 
accetta per parametro un IEventParams&.
Quando da fuori voglio legare un evento scrivo in questa maniera:
AutoPtr< Delegate< void, KeyWindowEventParams& > > onKeyDown = new Delegate< 
void, KeyWindowEventParams& >
onKeyDown->Bind<MyClass>( this, &MyClass::OnKeyDown );
Creo il puntatore e bindo al delegate la funzione appropriata che ha questo 
prototipo:
void OnKeyDown( KeyWindowEventParams& i_eventParams )
KeyWindowEventParams è una classe derivata dalla IEventParams.
Il problema sorge quando chiamo la BoundDelegateToEvent in questa maniera:
BoundDelegateToEvent( EWE_KEYUP, onKeyUp );
Il compilatore mi dice che non può effettuare il cast...da
"AutoPtr<_Type>" a "AutoPtr<_Type> &"
Con
_Type=Delegate<void,KeyWindowEventParams &>
e
_Type=Delegate<void,Core::IEventParams &>
Non capisco il motivo....il reference nell'AutoPtr non dovrebbe dare 
problemi e KeyWindowEventParams implementa IEventParams, quindi, non ci 
dovrebbero essere problemi di casting (se fosse il contrario ce ne 
sarebbero, ma così...)
Qualcuno può darmi una soluzione al problema?
Grazie e ciao
Gazza

 sarebbero, ma così...)
Dovrei aver letto da qualche parte che l'ereditarietà non funziona con i
parametri template.
struct A {};
struct B : public A {};
template<class T> struct C {};
int main()
{
        C<A> ca = C<A>();
        C<A> cb = C<B>(); // error:
        // conversion from `C<B>' to non-scalar type `C<A>' requested
        C<A>* cbp = new C<B>; // error:
        // cannot convert `C<B>*' to `C<A>*' in initialization
}
-- 
int

"int i=0 0" <'@.'> ha scritto nel messaggio 
news:%N57e.56277$kC3....@tornado.fastwebnet.it...

Ah, grazie. Non lo sapevo...vuol dire che nei delegate utilizzero dei void* 
che saranno castati al tipo necessario dentro la funzione bindata dal 
delegate..
Grazie mille
ciao
Gazza

 delegate..
Probabilmente ti conviene guardare qui
 
www.boost.org
e in particolare bind e lambda.
Barone Frankenstein
Newsgroup: it.comp.lang.c++
Titolo: POSIX sotto Windows?

So che col Cygnus č possibile creare programmi per Windows usando perň le
system calls UNIX. Esiste qualche libreria per mingw32 (che č
sostanzialmente la stessa cosa) che permetta di fare la stessa
cosa(programmi windows in modalitŕ testuale, che utilizzano le chiamate
UNIX)?
--
Marco Iannaccone     
marc...@tin.it
ICQ: 18748121           MetalCoder
"What is real?  How do you define real?  If you're talking about your
senses, what you feel, taste, smell, or see, then all you're talking about
are electrical signals interpreted by your brain."
                                                       Morpheus - The Matrix

So che col Cygnus è possibile creare programmi per Windows usando però le
NON CROSSPOSTAAAAAAREEEEEEEEEEEEEEEEE !!!!
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 NON CROSSPOSTAAAAAAREEEEEEEEEEEEEEEEE !!!!
Beh, tecnicamente, non è un crosspost, dato che ho mandato msgs separati a
diversi NG....
E comunque il tema vabene per tutti...


E comunque il tema vabene per tutti...
E chi te l'ha detto ?
Qui dentro sicuramente no.


Newsgroup: it.comp.lang.c++
Titolo: una mano please

e' parecchio ma veramente parecchio che non uso c++ vorrei ricominciare e ho
scaricato la trial di borland volevo sapere perche' non mi funziona questo
codice che risiede nella formacreate all'interno del quale c'e' un listbox,
sara perche non trova il win.ini, sara' per il sistema operativo? io ho xp,
va bene?
char winDir[256], fileName[256];
GetWindowsDirectory(winDir, sizeof(winDir));
sprintf (fileName,"%s\\win.ini",winDir);
ListBox->Items->LoadFromFile(fileName);
}
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
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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

Salve a tutti.
Esiste un programma che estrae da un file DLL le funzioni presente con il 
tipo di parametri da utilizzare ?. Grazie
A. Mazzi 


Sei un po' OT, il tuo post era piu' adatto a it.comp.programmare.win32
Ad ogni modo, in generale non e' possibile determinare i tipi dei 
parametri, ma solo l'elenco dei nomi esportati dalla DLL.
A seconda del compilatore che ha prodotto la DLL i nomi potrebbero 
essere decorati in modo da inferire qualche informazione in piu', ma su 
una DLL qualunque non e' possibile farlo.
ciao
Giacomo
Newsgroup: it.comp.lang.c++
Titolo: Anno 2000

Sapreste indicarmi un sito in italiano che spiega BENISSIMO cos'è questo
Millenium Bug e cosa provocherà?
A me sembra una cosa assurda.
Ringraziamenti da
Iov...@freemail.it

 A me sembra una cosa assurda.
Non tanto assurda.
Il governo americano fara' stampare milioni di dollari di banconote,
e tutte le municipalita' hanno diffuso guide ai primi mesi del 2000,
stanno preparando scorte di carburante, interruzioni dei servizi di base,
elettricita', acqua, telefono. Le banche offorno prestiti per aggiornare
il patrimonio informatico.
Il primo timore e' nei confronti delle transazioni in moneta elettronica.
Negli usa i dollari non esistono, e funziona tutto con carte di credito
e debito. Se una ATM o un supermercato smettono di processare
le transazioni, allora temo scene di panico di massa verso i pochi
supermercati che continuano a funzionare.
Il secondo timore e' nei confronti dei sistemi automatizzati come
semafori, centrali di commutazione, sistemi di regolazione di
distribuzione di risorse eccetera (luce, acqua, gas, oleodotti, impianti
industriali).
Il terzo timore e' che emergano una serie di problemi sulla lunga distanza,
2-3 mesi dopo il millenio, quando emergeranno tutti gli errori non
corretti in precedenza.
In italia l'universita' di Roma e' tornata alla segreteria cartacea.
L'INPS e' nei guai gia' adesso.
Prevedo danni per questo anno e anche per il prossimo.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

A me sembra una cosa assurda.
Se vi servono degli aggiornamenti per i prodotti Borland come il
Borland C++, ho messo una pagina dedicata al millennium bug sul mio
sito denominata "Anno 2000".
Bye.
Jo Parrello - OWL/C++ Programmer
http://utenti.tripod.it/SourceNet
(
jopar...@geocities.com
)

Newsgroup: it.comp.lang.c++
Titolo: ARGH.. come fare?

Come posso fare x uuencodare un file?
oppure dove trovo la documentazione del formato?



 wrote in message 7l8rsv$pke$1...@hermes.iol.it...


Newsgroup: it.comp.lang.c++
Titolo: Cerco consiglio su un libro

C++  TUTTO & OLTRE
JESSY LIBERTY
APOGEO
Vorrei sapere se qualcuno di voi ha già visto o almeno  ha sentito
parlare di questo manuale sul C++. Se qualcuno di voi conosce questo
manuale lo invito a postarmi le sue impressioni su di esso,
all'indirizzo:
andc...@tin.it
Grazie mille.
Andrea

Chiesi anche io informazioni su questo libro e mi risposero in vari modi:
chi dice che fa proprio skifo e chi dice il contrario; ho letto una
recensione e ne parla bene, però tieni conto che presuppone già una certa
conoscenza del linguaggio e che tratta molti argomenti, quindi non può mai
approfondire molto. Io lo prenderei se avessi il tempo di leggerlo.
San Vegeta

...


 days" o roba del genere). Di solito diffido molto delle traduzioni
italiane. Non
Non dovrebbe essere la traduzione di "C++ unleashed"?
--
Alessandro Monti
Newsgroup: it.comp.lang.c++
Titolo: Winsock

:-\
qualcosa di veramente facile.. un tutorial che spieghi le basi della
programmazione del winsock.h
grazie

 programmazione del winsock.h
Comprati Login di questo mese, credo ci sia molto che ti possa interessare
P.S.
Non prendo percentuali da Infomedia, sia chiaro :-)
Alessandro Monti

 programmazione del winsock.h
Se ti accontenti di esempi in Assembler e C posso postarti io qualcosa.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

 wrote in message
qpWR3.16638$yQ.1...@typhoon.libero.it...
: Se ti accontenti di esempi in Assembler e C posso postarti io qualcosa.
ti ringrazio ma vorrei evitare l'assembler
ciao
Newsgroup: it.comp.lang.c++
Titolo: Multithreading

Ciao,
ho sempre programmato per Windows, ma adesso devo realizzare un'applicazione
portatile che possa funzionare sia su sistemi operativi Unix-like che
Windows. Trascurando l'aspetto grafico (fortunatamente la mia applicazione
da questo punto di vista non ha particolari pretese), come e' possibile
realizzare un'applicazione multithreading portatile?
In passato ho studiato pipe, semafori, fork() e via dicendo in Unix, ma se
voglio fare del multithrading e non del multiprocessing, come devo fare? Lo
standard C++ ha librerie multithreading?
Grazie
Nicola.

standard C++ ha librerie multithreading?
No. Allo stato attuale il C++ standard ignora quasi completamente il
problema del multithreading (a quanto ho sentito molto probabilmente
sara' una delle prossime aree di discussione del comitato di
standardizzazione).
Io ho scritto programmi multithread portabili usando i posix thread
su Linux e definendo delle semplici macro per emulare cio' che usavo
dei pthread su Win32. Nota che comunque non ho mai utilizzato
features "avanzate" come cambiare le priorita' o utilizzare delle
primitive di sincronizzazione particolarmente sofisticate.
Se ti interessano i dettagli mandami una mail.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

standardizzazione).
una soluzione potrebbe essere l'impiego del framework CommonC++,
ma é un pò pesantuccio.
io avrei una cosa da chiedere, ho provato l'altro giorno a dare
un'occhiata ai thread posix, ma il gcc in fase di compilazione ha
dato errore dicendo che non trovava nessun riferimento alle
funzioni pthread ..... in quale libreria stanno definiti questi
trhead? al momento ho risolto il problema a livello teorico (ancora
non ho scritto il codice, sto meditando!) con la creazione di una
coda messaggi e l'impiego di fork
cod

trhead? 
Se non ricordo male devi fare il linking con la libreria pthread:
gcc  ...  -lpthread
-- 
Saluti 	 		      << Linux Powered >>			 
LIBRA               e-mail: metti "libero" al posto di "NOSPAM"  

coda messaggi e l'impiego di fork
Fork fa una cosa molto diversa: *duplica* il processo con tutti
i suoi dati nel punto di chiamata. Lanciare un thread significa
invece che avrai due contesti di esecuzione che agiscono sugli
*stessi* dati (questo complica un po' le cose... in particolare
e' sempre presente il rischio di fare errori di distrazione e
trovarsi con programmi che "ogni tanto" si piantano senza
ragioni apparenti).
Io quando scrivo programmi multithread stabilisco di solito
compiti molto ben precisi per ciascun thread e strutture dati
sostanzialmente separate con interfaccie ben definite fra
i vari thread per la gestione della sincronizzazione.
Un altra cosa che ho fatto e' invece gestire dei pool dinamici
di thread che pero' lavoravano senza avere interazioni pesanti
con altre parti di programma tranne il sincronizzarsi per la
consegna dei risultati (sono thread di I/O verso client in un
server applicativo); sostanzialmente ogni thread e' associato
ad una specifica istanza di una classe e l'elaborazione rimane
confinata quasi per intero internamente alla classe.

Newsgroup: it.comp.lang.c++
Titolo: dubbio sulle eccezioni in C++

ciao a tutti, ho appena finito (a proposito, grazie a tutti! :-) ) la tesi,
scritta in C++; nello sviluppo ho notato una grande differenza rispetto
alle mie precedenti esperienze in Java: l'uso delle eccezioni.
Mi spiego meglio: in Java sei obbligato ad effettuare il catch delle
eccezioni
(non tutte effettivamente, mi sembra) o rilanciarle se non vuoi effettuare
il catch.
e se le lanci sei obbligato a dichiararle nella signature della funzione.
in C++ invece non c'e' nessuna indicazione nella cattura delle eccezioni, e
nessun obbligo di dichiarazione.
Lo so, caratteristica del C++ e' la totale liberta' lasciata ai
programmatori,
ma secondo voi questo particolare caso non comporta una "debolezza"
se i programmatori abusano di questa liberta'?
ovviamente la risposta e' si (come tutto cio' di cui si abusa, del resto),
ma non sarebbe meglio (non so se si possa fare a livello di standard)
fornire un qualche strumento
che *possa* (non debba!) obbligare il programmatore inesperto come me a
porre maggiore attenzione a questo aspetto? magari con dei warning, boh!
a voi la palla! :-)
--
Ciao by Allanon
Q: Why do programmers always mix up Christmas and Halloween?
A: Because 25 Dec = 31 Oct

se i programmatori abusano di questa liberta'?
Esatto.
Il Ghenio
---------
// TODO: Place your ass here
Newsgroup: it.comp.lang.c++
Titolo: Template di funzione membro all'interno di classe che istanzia un template

Ho un problema che, semplificato al massimo, si riassume nel seguente 
programma:
   struct B {
     template <int N> void f2() { }
   };
   template <class T>
   struct A {
     void f() {
       T t;
       t.f2<0>();
     }
   };
   int main() {
     A<B> ab;
     ab.f();
   }
Se compilato con il compilatore Microsoft, anche se uso il massimo 
livello di warning e la disabilitazione delle opzioni non standard, non 
segnala errore, e produce un codice che funziona secondo le mie intenzioni.
Invece, con il compilatore on-line Comeau, se compilo con l'opzione 
"Compile in strict C++03 mode", ottengo il seguente errore di compilazione:
MODE:strict errors C++ C++0x_extensions
"ComeauTest.c", line 9: error: expected an expression
   		t.f2<0>();
   		        ^
Se invece, sempre con il compilatore on-line Comeau, se compilo con 
l'opzione "Compile in relaxed mode", non segnala errori di compilazione.
Anche con il compilatore GCC viene segnalato errore in quel punto. Non 
ho provato le opzioni di tale compilatore.
Si noti che il seguente programma compila in tutti i casi citati:
   struct B {
     template <int N> void f2() { }
   };
   int main() {
     B t;
     t.f2<0>();
   }
Si noti anche che se la funzione f2 viene definita e usata come funzione 
statica, si ripresentano gli stessi errori.
Si noti infine che se la funzione "f2" e' dichiarata:
   template <class T2> void f2() { }
ed e' chiamata:
   t.f2<int>();
si ripresentano gli stessi errori.
Le domanda che pongo sono le seguenti.
* Sbaglio io a voler fare una cosa illegale e sbaglia il compilatore 
Microsoft ad accettarla, o sbagliano i compilatori Comeau e GCC a 
respingerla?
* Esistono modi portabili di ottenere lo stesso risultato, cioe' 
definire una classe (B) che contiene un template di funzione membro (f2) 
in cui il parametro di template non viene usato tra gli argomenti della 
funzione, e passare tale classe come parametro di template (T) a un 
template di classe (A) che richiama la suddetta funzione (f2) 
istanziandone il template?
Grazie
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 [...]
Quando si chiama un metodo template che richiede di specificare
esplicitamente i parametri, da un altro template, la sintassi corretta e'
questa:
t.template f2<0>();
Credo che lo standard preveda la possibilita' da parte del compilatore di
accettare la sintassi che hai usato tu, ma non lo richieda.
Purtroppo non riesco a trovare il passo dello standard che lo dice.
Ciao.

 Purtroppo non riesco a trovare il passo dello standard che lo dice.
Perche' non esiste: e' un'estensione Microsoft.
Ciao,
Nicola

 Perche' non esiste: e' un'estensione Microsoft.
Ah, beh... Ecco!
E' che un po' di tempo fa mi era successa una cosa simile, e credo di avere
postato su comp.lang.c++, dove mi ha risposto uno che fa "Comeau" di
cognome... ;-)
Mi sembrava che mi avesse riportato qualcosa dello standard, ma non mi
ricordo bene.

 t.template f2<0>();
Grazie

Newsgroup: it.comp.lang.c++
Titolo: dev-c++ guida per sviluppare

Ciao a tutti, sono nuovo di questo newsg e del c++ cmq mi sono scaricato il
compilatore dev-c++ e volevo sapere se esiste un guida da scaricare im
italiano da qualche parte...prima di imparare il c++ sarebbe meglio saper
usare un compilatore!!!
Ciao e grazie
  Fogarolo Silvio

Silvio...

ciao,
<OT>
il Dev-C++ non è un compilatore, ma un IDE. Si basa sul mingw, porting win
del
gcc. Ti consiglio di non toccare i settaggi del compilatore, il dev-c++ fa
tutto
da solo.
E' abbastanza immediato da usare, ma se tu avessi problemi, puoi dare
un'occhiata
al sito bloodshed, dove (se non ricordo male) c'è una miniguida.
Sarebbe una buona cosa anche avere il mingw 2.0.0.2, aggiornato al gcc 3.2,
che
contiene alcuni headers standard mancanti nelle versioni precedenti.
se hai ancora problemi, contattami in mail: _lupin85_(at)
libero.it
</OT>
In questo NG sei OT, si discute del linguaggio C++ standard, ed eventuali
discussioni
su IDE e compilatori andrebbero fatte in posti più appropriati.
--
Lupin85© - Filser #2 - ICQ # 91528290
Founder di #fils [
azzurranet.org
]
"It is not important what you believe, only that you believe."

Newsgroup: it.comp.lang.c++
Titolo: funzioni in c++.Urgente. Domani Provetta

Qualcuno sa dirmi quando devo usare un puntatore come parametro in una 
funzione e la sintassi giusta nell' intestazione e nella chiamata e 
nello svolgimento?. Ho usato come parametri dei puntatori ma il mio 
computer scriveva come errore:                
______________________________________________________
Get Your Private, Free Email at 
http://www.hotmail.com
--
Automatic posted from 
F92.hotmail.com
 [207.82.250.198]
via Mailgate Server - 
http://www.mailgate.org

 computer scriveva come errore:               
Brutto errore, davvero... :-)))
Newsgroup: it.comp.lang.c++
Titolo: Info tastiera

Ciao a tutti, qualcuno saprebbe indicarmi un modo per riconoscere quale
tasto della tastiera sia stato premuto: tipo un tasto freccia o uno funzione
es. F4?
Esiste una libreria ansi C che mi consenta di fare questo?
Grazie in anticipo Alessandro

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: Lista di oggetti all'interno di un altro oggetto

Salve.
Anzitutto un pubblicp grazie a tutti coloro che mi hanno aiutato
ultimamante. Spero che possiate continuare a farlo... in questo modo stò
crescendo nella programmazione.
Una domanda:
Se ho un oggetto ottenuto istanziando una classe A che, fra le sue variabili
private, contiene una lista (in pratica ogni oggetto può contenere un numero
diverso di "sotto-oggetti") come faccio ad accedere, senza utilizzare i
metodi di A, alla testa della lista ?
Se uso
list<Ack_list_element> ack_list;
ed ack_list.begin()
mi spunta un errore del tipo:
Undefined symbol 'ack_list'....
A parte la soluzione banale di rendere public la lista c'entra per caso
qualcosa "friend" o sono completamente fuori strada?
Grazie,
Sebastiano
Bye

 metodi di A, alla testa della lista ?
Perché non vuoi utilizzare metodi di A? Mi sembrerebbe quella la
soluzione migliore.
EMG

 
-- 
"a` parte isso, tenho em mim
 todos os sonhos do mundo"

E come faccio? Per eliminare il primo elemento della lista di solito uno fa
lista.pop_front()... ma se lista č un membro private come cavolo faccio?
Scusate se non ho interagito subito col gruppo di discussione, ma mi si č
piantato il computer ed ho dovuto reinstallare tutto... 2 giorni di incubo!
Bye,
Sebastiano


Se proprio non vuoi dichiarare la lista publica allora puoi fare:
class NonLaConosco
{
   private:
     std::list<LoSaiTu> list;
   public:
     // ...
     std::list<LoSaiTu>* operator->() { return &list; }
};
In questo modo puoi fare, ad esempio
NonLaConosco nlc;
nlc->pop_front();
Se invece devono accedere direttamente alla lista solo alcune funzioni, allora
basta dichiarare queste funzioni friend della classe (soluzione migliore)
Ad esempio (continuando nella definizione della classe)
     friend void my_pop_front(NonLaConosco&);
Nota: tale dichiarazione la puoi mettere nella parte publica, privata o protetta,
non importa.
Ovviamente devi poi definire da qualche parte la funzione
 void my_pop_front(NonLaConosco& nlc)
{
  nlc.list.pop_front();
}
Comunque ti consiglio di leggere su questo argomento qualche buon libro.
L'argomento delle funzioni friend nasconde qualche (piccola) insidia;
(comunque stai tranquillo, non è questo il caso)
Manlio Perillo

Grazie tanto.... al solito sei quello che mi tira fouri dai guai...
Bye,
alle prossime mie domande !!!!
Newsgroup: it.comp.lang.c++
Titolo: Articolo Castagna

E` possibile reperire in rete l'articolo citato da Pescio?
Paolo

 
http://sunsite.berkeley.edu:80/Dienst/UI/2.0/Describe/ncstrl.ucb/CSD-95-890

 Paolo
-- 
+-----------------------------------------------------+
|  Lorenzo Bettini          ICQ# lbetto, 16080134     |
|  PhD student in Computer Science                    |
|  Florence - Italy         (Linux User # 158233)     |
|  Home Page        : 
http://w3.newnet.it/bettini
     |
|           
http://infostud.dsi.unifi.it/~bettini
     |
|  Mail Home        : 
lorenzo...@penteres.it
     |
|  Mail University  : 
bet...@dsi.unifi.it
            |
|  
http://www.mokabyte.it
       Java on line journal  |
|  
http://music.dsi.unifi.it
         XKlaim language  |
|  
http://www.gnu.org/software/java2html
 & cpp2html   |
+-----------------------------------------------------+

Newsgroup: it.comp.lang.c++
Titolo: iteratori non const

]

 cancellato)
Se ti serve un container in cui poter modificare gli elementi puoi usare
o una map
o una semplice list (dipende se hai bisogno di fare ricerche per chiave
o ti basta
accedere ai dati in maniera sequenziale)


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

Qualche anima pia saprebbe spiegarmi in breve i reference? I puntatori a
forza di sbatterci la testa sono riuscito a capirli, ma i reference...
nisba. In pratica vorrei sapere cosa sono, a cosa servono e come si usano
questi "benedetti" Reference.
Ciao
Stefano

Stefano Giachetti wrote:

Puoi far riferimento ai reference come a dei puntatori che vengono
automaticamente dereferenziati al momento del loro utilizzo.
Ovviamenete ci sono particolari accortezze da tener presente nel loro
utilizzo,che se trascurate potrebbero causre effetti indesiderati e
malfunzionamenti;comunque  il compilatore e' molto attento a segnalarne
eventuali usi impropi.
--
Ivan Molella (icq# 97960484)
__LINUX__ the choice of the __GNU__ generation

 wrote in message
8vuuh7$a33$2...@serv1.albacom.net...

I reference non sono altro che alias o sinonimi di altre variabili e
vengono utilizzati per evitare la notazione a puntatori(& e *) che di norma
è soggetta a errori soprattutto per i principianti.
Una variabili reference è interscambiabile con la variabile di cui è
sinonima.
Es:
int numero;
int &mioNum = numero;    <-- mioNum è diventata un reference di
numero.Qualsiasi valore metti in numero lo troverai in mioNum e viceversa.
numero = 5;  <-- Allora anche mioNum = 5.
mioNum = 13;  <-- Anche numero = 13.
- I reference devono essere inizializzati nel momento in cui vengono
assegnati alla variabile di cui è sinonimo.   int &mioNum = numero;
- I reference devono essere sinonimi sempre della stessa variabile.
- I reference non possono essere nulli.
Lo scopo principale dei reference è quello di poter implementare il
passaggio per indirizzo nelle funzioni senza dover utilizzare la notazioni a
puntatori e conservando la stessa efficienza in termini di prestazioni.
Newsgroup: it.comp.lang.c++
Titolo: Turbo c++ 3.0

Salve a tutti.
Qualcuno saprebbe dirmi se è possibile scaricare gratuitamente il
compilatore citato in oggetto? Tempo fa l'avevo trovato, ma non mi ricordo
più dove.
Grazie

 ha scritto nel messaggio
news:5LEY6.343$bG1....@news1.tin.it...


o anche da 
http://spot.pcc.edu/~wmorales/cs161/free_compiler.htm
LM


Mille grazie!

piů dove.
x via warez si, x via gratuita nel senso con tanto di accettazione del
fatto da parte di borland, no
cod

 cod
Sbagli! la versione che io ho consigliato è il Turbo C++ 3.0 Lite, la
versione studenti di TC, allegata ad alcuni libri e disponibile su molti
siti univesitari. E' limitata, ma funzionalmente completa.
LM
Newsgroup: it.comp.lang.c++
Titolo: Errore con il Borland C++ 3.1...

Salve a tutti, è la prima volta che posto in questo NG.
Sebbene abbia letto i post precendenti non ho trovato una
risposta al mio problema... Uso ancora l'antico ma potente
(so che c'è di meglio...) compilatore della Borland versione
3.1 (1992!). Mi sono sempre tovato bene, mai creato
problemi; ma da due giorni non funziona niente... Aprendo il
programma mi compare questo grazioso messaggio:
Unexpected end of file on
C:\...\CPP\BIN\TCDEF.DSK
Io pensavo di potermene tranquillamente infischiare, ma
visto che cercando di compilare un file, o anche di uscire
dal C++ mi compare QUESTA scritta:
+------------ System Message ------------+
         Critical disk error on drive C
                    Retry  Cancel
penso che la cosa sia più seria del previsto... Non so cosa
fare e se sapete come risolvere il mio problema sarà molto
gradita una risposta.
Grazie.
Saluti.
--
_,.~^°' Elzombi '°^~.,_

 ha scritto nel messaggio
news:BUAc6.36156$ew1.2...@news.infostrada.it...


                    Retry  Cancel
Non utilizzo più il 3.1 da un pezzo, ma non sarà semplicemente che si
è rovianto questo file per spegnimento anomalo del PC (pare che esista
una patch microsoft perchè dopo 46 giorni e 7 ore windows 98 si
pianta. A me però ne servirebbe anche una per non farlo piantare prima
che scada questo limite, altrimenti come faccio a sapere se la prima
funziona?).
Esegui uno scandisk cosi la macchina va a posto, ed  eventualmente 
Reinstalla il 3.1 (magari su un altra macchina di appoggio così non ti
perdi le configurazioni già impostate) e ti fai la copia del file in
questione. Magari potresti trovarlo gia esploso direttamente sul CD
Mi pare di ricordare che funzionava anche da CD

 wrote in
message I8Cc6.36830$ew1.2...@news.infostrada.it...


 Mi pare di ricordare che funzionava anche da CD
Lo scan disk mi dice che è tutto a posto. Casomai proveò a
procurarmi ancora il bc, (in dischetti...!).
Grazie.
Elzombi

Grazie.
Mi spiace, Volevo postartelo. ma la versione di 3.1
non la trovo. Ero sicuro di averla su una rivista.

Newsgroup: it.comp.lang.c++
Titolo: Quale libro per capire il modello OOP del C++?

Salve.
Ho approcciato al C++ da qualche mese e sto cercando di impararne al
meglio le caratteristiche di linguaggio OOP e il relativo modello che
esso offre.
Inerentemente ad esso finora ho solo letto TIC++, che č piuttosto
introduttivo.
Vorrei ora approfondire l'argomento.
Grequentando il NG ho anche sentito parlare di modello
"Letter-Envelope", class Factory, etc... Vorrei capire tutto un po'
meglio.
Quale libro mi consigliate per questa precisa esigenza?
Grazie,
Marcello.

Ciao,
S. Lippman, "Inside the C++ Object Model", Addison Wesley
Descrive come funzionano "dentro" le classi, i metodi virtuali, ecc.
J. Coplien, "Advanced C++ - Programming Style and Idioms", Addison
Wesley
Descrive alcune tecniche avanzate di utilizzo del C++. Un po' datato ma
comunque valido.
Gamma, Helm, Johnson, Vlissides "Design Patters - Elements of reusable
design", Addison Wesley
Descrive alcuni design patterns fondamentali, tra cui Abstract Factory e
Factory Method.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: testi consigliati?

Conosco il C++.
Conosco il Delphi.
Sto imparando qualcosa su MFC dai seguenti testi:
- programming windows with MFC (2nd edition)
- microsoft visual c++: programmare in MFC e Win32 (ver 2.0)
Vorrei acquistare un nuovo testo per imparare I CONCETTI che stanno dietro
alle scelte fatte dagli sviluppatori, concetti con applicazioni immediate,
da testare facendo codice!
Consigli?
bbuio

Ah.. intendevo di VISUAL C++

 da testare facendo codice!
Sei leggermente OT, ma ... che cosa ha che non va il libro di Prosise?
Ad ogni modo per capire i concetti dietro windows dovresti comprare il
Petzold e il Richter, ma....applicazioni immediate da testare facendo
codice... non so cosa tu intenda!
Se il libro di cui parli sulle MFC e' come credo il Prosise e' un ottimo
libro, ma ... attenzione, ora come ora forse ti converrebbe studiare .NET
Tommy


wrote:

Design Patterns: Elements of Reusable Object-Oriented Software
Pattern Languages of Program Design vol 1-4
Pattern Oriented Software Architecture vol 1, 2

...

Ottimi consigli, ma dubito che questi concetti siano molto presenti
nel disegno di MFC, o sbaglio?
Ciao,
Nicola

nel disegno di MFC, o sbaglio?
i primi 4 del posa2:
Document-View (MFC)
Wrapper Facade (MFC), 
Interceptor (COM)
Extension Interface (COM)
Non mi rifererivo espressamente a MFC cmq, probabilmente avrò
maleinterpretato la richiesta.

Newsgroup: it.comp.lang.c++
Titolo: PROBLEMI CON DLL

Salve a tutti,
come posso fare per inserire nel mio programma c++ una dll da me
precedentemente fatta ?
io utilizzo microsoft visual c++ 5.0
aspetto notizie :)
saluti, marco

io utilizzo microsoft visual c++ 5.0
Normalmente insieme a una pippo.DLL si produce anche la pippo.LIB
che ne e` la "export library".  In questo caso puoi linkare il tuo programma
con pippo.LIB e usare le funzioni esportate senza bisogno di preoccuparti
del fatto che vengano da una DLL (bastera` che a runtime il pippo.DLL sia
nello stesso directory del tuo pluto.EXE, ovvero nel directory di sistema o
lungo la path).  Questo e` il modo piu` semplice e comodo.
All'altro capo dell'asse della "comodita` vs flessibilita`"... puoi
connettere
esplicitamente una DLL a runtime con la funzione di sistema LoadLibrary,
poi trovare al suo interno l'indirizzo di una funzione con GetProcAddress,
metterlo in un puntatore di tipo adeguato, e chiamarla cosi`... con la
grande
scomodita` che devi sapere esattamente come il compilatore ha "decorato"
(gergo Microsoft; "mangled", cioe` "massacrato", per la maggior parte
dei compilatori C++) il simbolo della tua funzione (se in C++; puoi usare
funzioni dichiarate extern "C" per aggirare in parte questo problema).
Questo schema permette di cercare la DLL in vari posti, girare comunque
con funzioni ridotte se manca o non offre certe funzionalita`, ecc ecc.  Ma
il primo schema e` di gran lunga piu` comodo...!-)
Alex