mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Borland C++ Builder 5

Ciao a tutti, sono nuovo del newsgroup, questo è il mio primo post...
Volevo chiedervi un'aiutino col compilatore in oggetto.
Ho scritto la mia applicazione, compilo e faccio il make. Quando la lancio
in un computer diverso dal mio mi dice che mancano le dll (borlndmm.dll e
cc3250mt.dll). Volevo chiedervi se era possibile includere le dll
direttamente nell'eseguibile... si può?
Se non si può dove posso trovare un'applicazione che mi permetta di
automatizzare l'installazione del mio programma?
Grazie, Marco.

 Se non si puņ dove posso trovare un'applicazione che mi permetta di


E' vero ma ti crescono gli eseguibili inglobando il tutto visto che
borland
c++ e/o delphi inseriscono anche i packages(naturalmente anche questa č
un opzione
a seconda se li setti come runtime)
Quindi se vuoi puoi copiare le dll direttamente all'interno della tua
cartella
oppure nel system di windows.
N.B.
Questa č un'altra alternativa va bene anche quella di deselezionare
"USE DINAMIC RTL" in Option/Linker.
Devis
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie ragazzi. Ho risolto il mio problema. :-)

Newsgroup: it.comp.lang.c++
Titolo: Funzione per trasformare in maiuscolo un carattere

Esiste qualche funzione che permette di convertire in maiuscolo una
stringa o un carattere e di fare il contrario da maiuscolo in
minuscolo.
In java mi ricordo che c'erano i metodi toUpperCase e .toLowerCase in
c++ c'è qualcosa di analogo?
Grazie.

Giorginello ha scritto:

  basta un banale uso dell'operatore ternario ?:

...

http://www.dinkumware.com/htm_cpl/index.html
. Cerca toupper e tolower.
Ciao,
Nicola

  basta un banale uso dell'operatore ternario ?:
   Meglio le gia` consigliate toupper e tolower, pero`, onestamente,
non intuisco come faresti con '?' (senza ricorrere ad assunzioni sul
set di caratteri in uso, 
p.es
 che sia ascii).
-- 
S.L.
Newsgroup: it.comp.lang.c++
Titolo: Eccezioni fra C e C++

Sto scrivendo una libreria sotto Linux in C++ e vorrei usare la gestione 
delle eccezioni del C++, il problema è che devo renderla disponibile 
anche a chi programma in C.
 
Ma lo posso fare? Come dovrebbe fare un programmatore C a intercettare 
una throw da C++ (con relativo oggetto eccezione) a forza di setjump e 
longjump? :-/
 
Non mi va di dovermi riscrivere tutto in C...

 Non mi va di dovermi riscrivere tutto in C...
 
Non devi "riscrivere tutto in C", l'importante è che l'interfaccia esterna della libreria sia compatibile con il C: niente classi, template, eccezioni e via discorrendo.
Lascia perdere setjump/longjump che sono hack orribili che risolvono un problema che, a fare le cose a modino, non ha nessuno.
Ciao!

 Lascia perdere setjump/longjump che sono hack orribili che risolvono un problema che, a fare le cose a modino, non ha nessuno.
 
Quindi non posso usare le eccezioni, come temevo... questo significa che 
devo restituire un errore apposta nelle chiamate a funzione interessate. 
E vabbè, NMP :-D
 


Scrivi un api in C e inglobi il tutto in una libreria
Su questa costruisci un api C++ e (se serve) inglobi il codice in una 
libreria per programmatori C++
 


E ti dirò di più (e qui mi sbilancio): non fare mai interfacce esterne in C++! :-)
Lo dico per due motivi principali: 1- Con sforzo minimo o nullo le interfacce in C sono compatibili con praticamente qualsiasi altro linguaggio/interprete 2- Se le fai in C++ prima o poi ti verrà la voglia di prendere e/o ritornare anche roba STL; a quel punto non sarai più compatibile nemmeno tra due compilatori diversi!
Ciao!

 libreria per programmatori C++
 
A questo punto tanto vale lasciare l'API in C, usare il C++ era una mia 
comodità visto che ormai sono abituato a usare i costrutti del C++.
 


 
Si e no, dipende
 
In C++ puoi costruire un' api piu facile da usare, ad esempio obj 
oriented; inoltre puoi sollevare eccezioni in caso di errore
 
L' esperienza insegna che ogni tanto il programmatore dimentica di 
testare il retcode delle funzioni con conseguenze che puoi immaginare
 
Ma se in C questo ï¿œ inevitabile, in C++ sarebbe corretto evitare al 
programmatore  l' onere di testarlo
 
Ovviamente, non conoscendo l' api C di questa libreria, sta a te 
giudicare se ï¿œ il caso di costruire lo strato C++

Newsgroup: it.comp.lang.c++
Titolo: Scusate la mia ignoranza ...........

Volevo sapere ???? ma quando trovo in un programma in C LPVOID significa che
è un puntatore di tipo Void ....... e quando trovo LPDWORD è un puntatore
DWORD
o nooooo ??????
Grazie ....

you wrote:

Si'. "LP" sta per "Long Pointer" ed e' retaggio dei vecchi sistemi a
16 bit in cui c'erano puntatori a 16 e 32 bit.
Pero' per questo genere di domande e' meglio spostarsi su
it.comp.programmare.win32.

 wrote in message
gfrkqsg2bfghhjo4p...@4ax.com...

Grazie sei stato gentilissimo .... xo' io mi riferivo ad una struttura di C
ecco perchè lo chiesto in questo NG
Newsgroup: it.comp.lang.c++
Titolo: VCL

Come ambiente di sviluppo io uso il Borland C++ Builder.
Ho una mezza idea di passare al Visual C++ ma vorrei sapere alcune
cose:
Il Visual C++ supporta la programmazione per componenti?
Per il Visual C++ esiste una controparte della VCL del C++ Builder?
Le MFC forniscono un livello di astrazione paragonabile alla VCL?
Ringrazio tutti coloro che mi risponderanno.

 Le MFC forniscono un livello di astrazione paragonabile alla VCL?
No, neanche per sbaglio. Se proprio non sei costretto stai lontano 
kilometri dalle MFC che sono il peggio del peggio del peggio.
Piuttosto usa le WxWidgets che non sono granche' ma sono comunque 1000 
volte meglio.

 volte meglio.
Sono portabili

 Ringrazio tutti coloro che mi risponderanno.
Non c'è motivo per passare da VCL a MFC !!
Il Borland è un compilatore e un IDE fantastica, tienilo stretto.
Un motivo invece per passare da VCL a wxWidgets è la portabilità.

Newsgroup: it.comp.lang.c++
Titolo: Linux Dev?!

Ciao ragazzi è da un po che ho installato mandrake 8.0 sul mio pc!E' un po
che studio c++ utilizzando il compilatore Dev-C++!Mi dicono che esiste una
versione per linux!Mi potete dare qualche informazione un link dove poterlo
scaricare e istruzioni per "L'INSTALLAZIONE"!
Ciao a tutti
Antonio!

 wrote in
news:DsAD9.11546$
3l.2...@twister1.libero.it
: 

Il compilatore che usi con DevC++ è un porting di un compilatore che è già 
presente sotto linux e 90 probabilità su 100 l'hai già installato. 
Quanto al DevC++, non mi pare che esista una versione per linux ma se vuoi 
una ide grafica equivalente ce ne sono (KDeveloper, ad esempio). 
Quanto alle istruzioni per "L'INSTALLAZIONE"!, con il gestore pacchetti 
mandrake si perde più tempo a dirlo che a farlo.

Sul sito   Bloodshed.net trovi tutto
ciao

-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


E' per questo che l'etica dovrebbe imporre di non fare il port sotto 
windows di applicazioni GPL: l'utente windows medio non sa neanche cosa 
sia la GPL. Prob. se ti avessero detto che devc++ è gpl ed è un porting 
di gcc avresti detto che è scarso e non l'avresti neanche voluto provare 
:))))
Va bene, non volevo essere troppo acido. dev-c++ è una IDE, il 
compilatore sottostante è mingw32 che è un port di gcc. gcc ce l'hai già 
installato con buona probabilità, invece se cerchi una IDE sotto linux 
puoi usare emacs, oppure anjuta, kdevelop e tante altre (impara ad usare 
urpmi / urpmf e company e cerca).
Vincenzo

Scusate le righe lunghe... sto su una macchina non mia
e non me n'ero accorto.
Vincenzo
Newsgroup: it.comp.lang.c++
Titolo: [MI] - Informatica - ROGRAMMATORI JUNIOR

4GL Software, società di Milano, ricerca appassionati P.C.
(preferibilmente diplomati/laureati in discipline tecniche) per uno stage di
formazione gratuito finalizzato all'inserimento nel mondo del lavoro in
qualità di programmatori esperti in ambienti di sviluppo applicativo quali:
- Access\Visual Basic
- Power Builder
- Oracle
- Java
Sono richieste :
- Conoscenza di base del Personal Computing
- Conoscenza anche scolastica di almeno un linguaggio di programmazione
- Conoscenza anche scolastica della lingua inglese
- Disponibilità ad un serio impegno full-time durante lo stage la cui durata
è
prevista in circa 40 gg.
- Domicilio nella provincia di Milano
Non ci sono premi, non ci sono pifferai magici, solo serietà.
Nel corso del 2000 più di 20 giovani dalle belle speranze hanno
iniziato a lavorare assieme a noi.
Il lavoro è duro e richiede forte determinazione ma al termine dello stage,
per tutti coloro che avranno superato con profitto il
test finale, è previsto un contratto per l'inserimento nel mondo del lavoro
con la qualifica di Programmatore Junior.
Per ulteriori informazioni telefonare in orari ufficio allo 02/27080684 o
inviare una e-mail presso 
4...@galactica.it
4GL SOFTWARE
G. Masoni
P.S: Il prossimo corso schedulato e' un corso su Java/Oracle che iniziera'
il 5 Febbraio 2001.

Questo non ha molto a vedere col C++ ...
Cordiali saluti,
Nicola Musatti



Sono d'accordo....
anzi penso che post del genere vanno evitati!
sderinux


Da un certo punto di vista e' vero, ma se almeno sono in argomento,
possono costituire uno strumento per qualcuno dei frequentatori che
voglia compiere il passo da "hobbysta" a professionista.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: esperto c++ a L'AQUILA per una mano





sono  Massimiliano  studente  di  
ingegneria  e  cercavo  qualcuno  che  mi  
potesse  dare  una  mano  ad  usare  il c++ 




Puoi passare nel mio studio, posso darti qualche consiglio. Dipartimento di
Ingegneria Elettrica. Cesare Padovani.
-- 
Posted from 
dsiaq1.ing.univaq.it
 [192.150.194.32] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: Problemi con bcc55





Ho scaricato gratuitamente il compilatore Borland C++ compiler 
5.5, ma per utilizzarlo devo comunque scrivere i miei programmi con un editor 
(io uso il notepad) salvarlo con estensione .cpp e poi compilarlo nel prompt 
ms-dos con il comando bcc32 myfile.cpp. Io vorrei un compilatore stile Turbo 
Pascal, cioè con un suo menù, un suo help etc... Non è che il suddetto 
compilatore ha questo stile ma io non sono in grado di sfruttarlo? Ne esiste 
uno?


 


Inoltre vorrei sapere che "linguaggio interno usano il Borland 
C++ builder e il Visual C++.
Lo stesso linguaggio che si usa per il 
compilatore sotto DOS?
Se no, quale dei 2 è più standard o comunque più 
simile a quello DOS?


 


Grazie



>>>
Usa UltraEdit per scrivere (al posto del notepad). Per quanto riguarda "lo
stile Turbo Pascal", dovresti tornare al Borland C++ 5.02 (mi pare).
Achille

 wrote in 
  message 000801bffa32$059f54a0$75352797@it...


 wrote in 
  message 
news:000801bffa32$059f54a0$75352797@it
...


Ho scaricato gratuitamente il compilatore Borland C++ 
  compiler 5.5, ma per utilizzarlo devo comunque scrivere i miei programmi con 
  un editor (io uso il notepad) salvarlo con estensione .cpp e poi compilarlo 
  nel prompt ms-dos con il comando bcc32 myfile.cpp. Io vorrei un compilatore 
  stile Turbo Pascal, cioè con un suo menù, un suo help etc... Non è che il 
  suddetto compilatore ha questo stile ma io non sono in grado di sfruttarlo? Ne 
  esiste uno?


 


Inoltre vorrei sapere che "linguaggio interno usano il 
  Borland C++ builder e il Visual C++.
Lo stesso linguaggio che si usa per il 
  compilatore sotto DOS?
Se no, quale dei 2 è più standard o comunque più 
  simile a quello DOS?


 


Grazie


 


 


 


 


Due domande e due risposte...


1) Esiste qualche editor gratuito che si interfaccia automaticamente 
al bcc55 e che dovrebbe supportare anche il debugger gratuito (sempre Borland). 
Ad esempio VIDE, di cui non ho sottomano l'URL, ma che se me lo ricordi con una 
E-Mail te lo spedisco all'istante.


Se poi hai il BC502, c'è un altro sito (Sirma Tech, di cui c'è un link al 
mio sito) che ti spiega come usarli insieme.


 


2) Cosa intendi per linguaggio interno? E' chiaro che entrambi usano il 
C++. I frameworks sono diversi, ed anche, forse, il target.


Ad esempio come libreria di classi Visual C usa MFC, uno standard, mentre 
Borland usa VCL che, apri bene le orecchie ed inorridisci, è scritta in Delphi e 
poi "tradotta" in C++ con i pregi e i difetti di Delphi. Per assurdo, C++ 
builder ha un compilatore C++ migliore nel senso che è più aderente allo 
standard, ma propone un framework che non è standard. Tra i vantaggi del C++ 
Builder, c'è tra l'altro il fatto che è un tool RAD, nel senso che è molto più 
facile disegnare interfacce utente e cose simili. Chiaramente il discorso non 
può essere esaustivo, ma spero comunque di averti aiutato. 


 


Ciao, Luigi


 


-- 
ing. Luigi Bianchi
http://www.luigibianchi.com
Dfm2API : 
Delphi / C++ Builder Form Converter
Brain Computer Interface SDK 
(beta)
Uncommon Controls
Newsgroup: it.comp.lang.c++
Titolo: non capisco...

#include <iostream>
int dim ( const int array [ ] ) {
  return sizeof ( array ) ;
}
void main ( ) {
  int prova [ 4 ] = { 1 , 2 , 3 , 4 } ;
  cout << sizeof ( prova ) << endl ;
  cout << dim ( prova ) << endl ;
}
se mando in esecuzione questo programma, viene stampato a video prima 16 e
poi 4.
sapreste dirmi perché?
sbaglio nel passaggio dell'array?
grazie
-- 
     _____     ____
    /      \  |  o |  
http://magicforum.altervista.org
   |        |/ ___\|  
   |_________/
   |_|_| |_|_|

 sbaglio nel passaggio dell'array?
ti conviene sempre passare il puntatore dell'array, e la dimensione.. Se
passi l'array carichi nello stack come passaggio parametri 4 interi. se
passi un int* passi solamente un parametro....


 passi un int* passi solamente un parametro....
Questa non l'ho capita.
SiMoStro

 passi un int* passi solamente un parametro....
questa roba non ha senso, rileggiti un libro di C/C++ ti potrebbe essere
molto utile.
Tommy

 grazie
prego,
Nids

 Questa non l'ho capita.
nench'io
-- 
     _==_ _
   _,(",)|_|
    \/. \-|
  __( :  )|___ 
http://magicforum.altervista.org

ok. grazie. sei stato molto chiaro.
ciao
-- 
________/
_______/\
______/\ \
_____/\ \ \
____/\ \ \ \
___/\ \ \ \ \
__/\ \ \ \ \ \
_/\ \ \ \ \ \ \
/\ \ \ \ \ \ \ \   
http://magicforum.altervista.org
\/-/-/-/-/-/-/-/-----------------------------------.--------
_\/ / / / / / /                                    |
__\/ / / / / /                                   \(|)/
___\/ / / / /                                   --(")--
____\/ / / /                                      /`\   

 ti da la dimensione di prova, 4 celle...
a quanto ho capito da successive risposte, mi da 4 perché il tipo int *
occupa 4 byte e prova è proprio una variabile di questo tipo.
ciao e grazie
-- 
==O       ==O_/    ==O_/
 /|\/       /\      \/\ _                 /
/ |\       / |\        | \       \   / / /o	
http://magicforum.altervista.org
_/__|_     _/__|_     _/____    ==O__\/ /o   
 o  o       o  o       o  o      \/

 non ci posso fare niente.
Puoi levarli :-)
Scherzi a parte, il commento era dipendente al
"che brutto" del primo post di risposta ed il
senso era "se proprio ci vuoi trovare qualcosa
di brutto č solo una bruttezza 'estetica'".
SiMoStro
Newsgroup: it.comp.lang.c++
Titolo: Numero Serie

Qualcuno mi dice come si fa a leggere il "numero di serie" di un disco?
Intendo quel numero che nel risultato di "dir" viene chiamato numero di
serie dell'unita'.
Si offre lauta ricompensa.... ehehehe   ;-)
Grazie

 Si offre lauta ricompensa.... ehehehe   ;-)
Grazie!  Cosa ho vinto?
- 
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: Finestre nascoste...

Problema sicuramente banale, ma che io non so risolvere: ho una finestra
derivata da CDialog che voglio creare con DoModal. Come faccio a farla
partire nascosta, in modo da poterla visualizzare solo quando mi tira? Mi
serve crearla con DoModal, perciň non suggeritemi metodi come Create, ecc...
Ho provato anche con ShowWindow, ma non so se sono io che non ci arrivo o il
VC++ che non mi vuole capire...
Thanx in anticipo...

Prova a scavalcare OnInitDialog , ed inserire
ShowWindow(SW_HIDE ) prima del costruttore di default, se non ricordo male
dovrebbe funzionare. :-)
Newsgroup: it.comp.lang.c++
Titolo: Gestore di eccezioni

In ambiente windows se metto un gestore di eccezioni in questo modo :
 try {
  while (GetMessage (&msg, NULL, 0, 0)) {
             TranslateMessage (&msg) ;
             DispatchMessage (&msg) ;
             }
 catch(...) {
  /* quello che vuoi... */
}
  return msg.wParam ;
il programma si conclude correttamente o potrebbe nascere qualche
problema (mi riferisco solo alla corretta chiusura del programma e non
alla eventuale perdita di dati)?
grazie

Ehm... chiedo scusa a Nicola Musatti per aver copiaincollato il suo post, ma
in fondo volevo dire la stessa cosa...
--------------
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
----------------
Ad ogni modo, per la poca esperienza personale che ho, posso dirti che tutte
le API native di Windows non lanciano eccezioni (corregetemi se sbaglio:
sono autodidatta); potrebbe capitarti una access violation o robba simile,
ma ti consiglio di gestire le tue eccezioni all'interno della tua WndProc
piuttosto che in WinMain: evita un sacco di problemi ed č formalmente +
corretto (anche se la cosa piů corretta č gestire ogni eccezione in un
contesto il piů vicino possibile alla funzione lanciante, anzichč piazzare
un solo blocco catch che le gestisca tutte allo stesso modo! <tirata di
orecchie>)

 in fondo volevo dire la stessa cosa...
Mi sà che ho fatto qualche danno... forse Nicola è un moderatore?
Chiedo scusa se ho sbagliato in qualche modo, ma sono neofita dei newsgroup
in genere...
Ignorate il messaggio copiaincollato da Nicola Musatti. Grazie.

 Ignorate il messaggio copiaincollato da Nicola Musatti. Grazie.
No, no, non ignoratelo per niente. Ben venga chi mi da una mano a
contenere gli OT :-)
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: help cast di puntatore void a puntatore a funzione

cast di puntatore void a puntatore a funzione
la questione e' che vorrei utilizzare un array a puntatori void per
correlare alcune informazioni di tipo diverso; una di queste e' una
funzione da invocare; ad esempio:
void *array[5];
void foo(){
   ...
};
array[2] = foo;
in seguito dovrei invocare la funzione puntata, e per leggibilita'
volevo usare un puntatore a funzione, passandogli il valore contenuto in
array[2]
void ( *ptr )() = ? ;
e adesso che ci metto al posto del punto interrogativo? non riesco a
scrivere il cast del puntatore void: vi assicuro che ci ho anche pensato
prima di scrivere un po' di stupidaggini tentando di compilarle :-)
qualcuno puo' aiutarmi? grazie a tutti
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


    reinterpret_cast<void (*)()>(array[2]);
comunque questo mi pare sia proibito dallo standard (il DJGPP non compila mentre
il BCC 5.5 si).
Per questo genere di cose di consiglio di usare funzioni virtuali
struct data_base
{
    virtual void operator()() = 0;
}
Saluti  Manlio Perillo

Newsgroup: it.comp.lang.c++
Titolo: Expressions reader

Ciao,
sto' cercando di scrivere un "lettore di espressioni" del tipo di quelle che
si trovano in una clausula WHERE di una query SQL.
Non ho molta voglia di infilarmi nel ginepraio di yacc, lex, bison .. e
compagnia perche' il problema non giustifica le sofferenze che i tool
sopracitati (per altro utilissimi e potentissimi) mi darebbero (e mi hanno
gia' dato).
Cerco una soluzione magari recursiva, molto "tagliata" sul problema.
Qualcuno ha esperienze su questo "topic"??
Pier
P.S. Vi chiederei di rispondermi anche per 'mail' in quanto non accedo
spesso al newsgroup ... GRAZIE
--
-------------------------------------------------------------------
piergiorg...@no-spam.hotmail.com
Please delete NO-SPAM to answer
-------------------------------------------------------------------

 Qualcuno ha esperienze su questo "topic"??
Trovi un paio di esempi sul mio tutorial Win32, alla URL
http://aleax.supereva.it/
, nel programmino di esempio che
fa grafici di funzioni: c'e` un micro-interprete che sa
in particolare naturalmente "leggere le espressioni" (con
il piu` semplice possibile approccio, cioe` un parser a
discesa recursiva), e anche in alternativa una interfaccia
a VBScript (via COM e ScriptControl) -- quest'ultima non
so quanto ti servirebbe, naturalmente, perche` la sintassi
delle espressioni sarebbe fissata dal linguaggi di scripting
usato e potresti farci poco d'altro che non valutarle (pochi
linguaggi espongono agevolmente il parse-tree di cio` che
hanno letto e parsato -- mi vengono in mente solo i soliti:
Smalltalk, che ha una sintassi peculiare, e Python, che
invece ne ha una particolarmente pulita ed usabile).
Alex
Newsgroup: it.comp.lang.c++
Titolo: Come è il Dev C++?

Ho il DevC++ ver.4.1 come è come ambiente di sviluppo?
Come vi sembra come compilatore?

 
Mi sembra che sia buono.... leggero ed efficiente!
Senti, l'hai scaricato dalla rete o l'hai preso in qualche rivista?
Se in qualche rivista in quale?
Grazie
-- 
Luigi
--
bug windows [5] = {"95", "98", "NT", "Me", "2000"};

 Se in qualche rivista in quale?
Dalla rete :-)

Newsgroup: it.comp.lang.c++
Titolo: Template e classi derivate

Un aiutino per favore:
template<class Tipo> class Array{
 public:
  Array(int n);
  Array(const Array& other);
  ~Array();
  void show();
  void set(int i, Tipo val);
  Tipo get(int i);
  Tipo Copyfrom(const Array& other);
 private:
  Tipo* arr;
 protected:
  int dim;
  };
.
.
.
template<class Tipo>
class Cat:public Array{       // per la classe derivata devo mantenere i
template?
 public:
  Cat(int n);
  Cat(const Cat& other); // PRE: stesse dimensioni degli array
  ~Cat();
  void show();
  void set(int i, char* str);
  char* get(int i);
 private:
  char** cod;
};
.
.
.
.
template<class Tipo>
Cat<Tipo>::Cat(int n):Array(n){
 cod=new char*[n];
}
Quando creo una classe derivata e uso una template nella classe base devo
usare template<class Tipo> class Cat<Tipo>:....quando definisco le funzioni
membro della classe derivata? Grazie 1000 (? 0,516). Penros.

 membro della classe derivata? Grazie 1000 (? 0,516). Penros.
Non ho mica capito!
--
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: Chiamata operatore d'assegnamento tramite puntatore o riferimento a classe base

L'operatore d'assegnamento non è ereditato nella derivata, no?
Se nella derivata nnon lo definisco, da quanto ho capito viene chiamato
quello del sottoggetto di base e i nuovi membri sono inizializzati membro a
membro, no?
Se però nella derivata ne definisco uno che accetta gli stessi paramentri di
uno definito in quella base, e quest'ultimo(quello della classe base) è
virtual, funziona il late binding, no? E se nella derivata ne definisco una
che accetta gli stessi paramentri rispetto a quella base ma restituisce un
valore diverso? Viene chiamata dinamicamente in base al tipo del puntatore o
riferimento?
--
Marco Iannaccone     
marc...@tin.it
ICQ: 18748121           Tolkien
"I've... seen things you people wouldn't believe. Attack ships on fire off
the shoulder of Orion.
I watched C-beams... glitter in the dark near the Tanhauser Gate. All
those... moments will be lost... in time..., like... tears... in... rain."
FAQ it.comp.lang.c: 
http://www.programmazione.it/linguaggi/c/itcomplangc.htm
FAQ it.comp.lang.c++: 
http://www.programmazione.it/linguaggi/c/lang_faq.htm

 riferimento?
Vale quanto sopra. Non essendo ereditato l'operatore di assegnamento della base non vi è alcun overloading degli operatori di assegnamento tra quello della base e quello della derivata.
HTH
_______________________________________
 Luca Minudel   Consulente Informatico
 
luca.m...@nline.it
 Conegliano (TV)
 WWW    
http://www.nline.it/consulting
 

 riferimento?
Vale quanto sopra. Non essendo ereditato l'operatore di assegnamento della
base non vi č alcun overloading degli operatori di assegnamento tra quello


 
Non so cosa dica lo standard, ma gcc e MSVC++ (se escludiamo un dettaglio
di cui parlo sotto) ti lasciano fare un cosa del genere:
struct B;
struct A
{
   virtual A& operator=( const B& )
   { /* fa qualcosa*/    
     return *this;  }
}
struct B: public A
{
   B& operator=( const B& )
   { /* fa qualcosa*/    
     return *this;  }
}
int main()
{
   B b;
   B b1
   A& a = b;
   a = b1;  /* chiama B::operator=(const B&) */
}
MSVC++ però non consente all'override di una funzione virtuale di
specificare un reference a una classe derivata come return type, cosa che
(a quanto mi pare) dovrebbe essere consentita della covarianza del return
type.
Max

 type.
Che????
Comunque, qualcuno sa cosa dice lo standard riguardo l'argomento?(late
binding con operatore d'assegnamento)


 
Mi spiego meglio: nel fare l'override di una funzione membro occorre
normalmente rispettare il return type della dichiarazione originaria. Se
la mia classe base ha un metodo:
 int func(int);
non posso farne l'override in una classe derivata cambiando il return
type, ad es:
 char func(int);
Tuttavia se il return type della funzione nella classe base è un base& o
un base* è consentito sostituirlo con un derived& o un derived*
nell'override. E' questo che si intende con covarianza. 
Max
Newsgroup: it.comp.lang.c++
Titolo: Nome del file exe

Ragazzi, so che è già stato detto su questo NG, ma non ho salvato il
messaggio :)
Quale è la funzione per capire il nome dell'exe che viene lanciato?
In altre parole, dopo avere distribuito un eseguibile, lui stesso deve
effettuare un controllo sul suo nome (per verificare se è stato rinominato).
Mi sembrava di avere capito che lo standard assicura solo il nome dell'exe,
e non il percorso completo. Mi va bene comunque.
[OT] Già che ci siamo, esiste anche una qualche api di win che mi fa lo
stesso lavoro?
Grazie
Ciao.

 Quale è la funzione per capire il nome dell'exe che viene lanciato?
argv[0]
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 stesso lavoro?
GetModuleFileName(0, buffer, sizeof(buffer))
Alex


Ok, provo.
Grazie ad entrambi!

GetModuleFileName(0, buffer, sizeof(buffer))
Si, l'ho trovato sull'SDK. Adesso non credere che non l'abbia cercato, prima
di postare, solo che Dio mio, c'è tanta di quella roba che è difficile
trovare quello che ti serve.
A proposito, non so se l'hai riscontrato anche tu: Sotto 95/98, non riesco a
generare l'indice dell'help, quello che serve per la ricerca delle parole
(il classico trova), mi spiego?
Mi da errore e si pianta sugli help di Borland riguardanti win32. Presumo
sia duvuto alla grossa mole di parole contenute... Che ne dici?

 sia duvuto alla grossa mole di parole contenute... Che ne dici?
Non ho gli help di Borland, ma con MSDN (l'help di Microsoft)
sotto Win98 non riscontro nessun problema del genere.
Alex

...


win32.
Probabilmente utilizzi un file di help bacato che la Borland distribui`
erroneamente con il BC++ 5.02. Sul sito inprise e`
possibile scaricare da parecchi tempo il file corretto in cui non mi
pare manchino informazioni (credo sia proprio quello distribuito da MS).
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: serializzazione

Ho una classe composta da un record ed un puntatore alla classe
stessa. Come fare la serializzazione? Grazie.

 stessa. Come fare la serializzazione? Grazie.
Serializzi solo il record.

stessa. Come fare la serializzazione? Grazie.
Una soluzione generica e' tenere un elenco di tutti gli oggetti
che hai gia' serializzato con il numero d'ordine di serializzazione.
Poi durante la fase di serializzazione fai qualcosa come
  void serialize(object *o)
  {
    if (l'oggetto puntato e' gia' stato serializzato)
    {
      scrivi su file un byte a 0 seguito dal numero
      d'ordine di serializzazione;
    }
    else
    {
      assegna all'oggetto il prossimo numero d'ordine;
      scrivi su file un byte a 1;
      chiama la funzione di serializzazione dell'oggetto;
    }
  }
La funzione di serializzazione deve scrivere quanto e' necessario
per poter ricostruire l'oggetto e quando si trova di fronte ad
un puntatore chiama (ricorsivamente) la funzione "serialize".
Per la ricostruzione parti con un elenco vuoto e man mano che
ricostruisci oggetti gli assegni un numero progressivo e tieni
il loro indirizzo in una mappa di ricostruzione.
Quando devi ricostruire un puntatore carichi dallo stream un
byte: se e' 0 allora troverai subito dopo il numero identificativo
di un oggetto che hai gia' ricostruito e restituisci il puntatore
a quello; se invece e' un 1 allora chiami da ricostruzione di un
nuovo oggetto (che sara' messo nella mappa per il seguito).
Ovviamente ho omesso un sacco di dettagli... pero' spero che l'idea
di base sia chiara.
Ci sono pero' casi in cui questo approccio e' terribilmente scomodo:
se pensi ad esempio ad una lista doppiamente collegata di 10000
elementi questo sistema comporta chiamate ricorsive nidificate
10000 volte. Nei casi di strutture note (es alberi o liste) e'
molto meglio utilizzare una serializzazione ad hoc (es in una
lista salvi solo il numero di elementi e poi chiami in sequenza
la serializzazione degli elementi senza preoccuparti dei link...
in fase di ricostruzione leggi il numero di elementi e ricrei i
link al momento sapendo che si tratta di una lista).
Il mio consiglio e' di utilizzare una tecnica mista... usi
serializzazioni ad hoc per i casi standard come liste, array e
alberi e usi invece il sistema della mappa per reference generici
interni alla struttura dati (che di solito sono meno).
HTH
Andrea
Newsgroup: it.comp.lang.c++
Titolo: modeless dialog box

Salve,
in Visual C++ 5.0, ho creato una dialog box con un campo Edit. Ho
visualizzato questa dialog in modo non modale. Il programma poi legge un
file e fa alcune elaborazioni sui record letti. Man mano che leggo un
record dal file, vorrei visualizzare nel campo edit il numero di record
letti. Mi accade pero' una cosa strana: la dialog box compare sullo
schermo, ma non e' disegnata completamente: manca il tasto cancel e
varie scritte statiche, inoltre il campo edit non viene aggiornato. Ho
messo allora all'interno del ciclo di lettura del file un contatore in
modo da far comparire ogni 500 record letti una MessageBox. Dopo aver
premuto il tasto Ok della MessageBox, la dialog box non modale appare
perfettamente disegnata e solo in quel momento il campo Edit viene
aggiornato. Come posso fare per visualizzare subito la mia dialog box
completa e per aggiornare record dopo record il campo edit?
Il codice e' il seguente:
  miadlg = new CmiaDlg();// modeless dialog. Create() e' nel costruttore
  miadlg->ShowWindow(SW_SHOW);
  miadlg->m_edit = "0";
  miadlg->UpdateData(FALSE);// inizializzo dialog box
  rit = miofile.ReadString(stringa); //leggo il primo record del file
  letti = 1;
  while (rit){
     if (letti % 500 == 0)
       AfxMessageBox("Letti altri 500");
     miadlg->m_edit.Format("%ld",letti); //scrivo nella Edit il n. di
record letti
     miadlg->UpdateData(FALSE); //aggiorno la dialog box
     rit = miofile.ReadString(stringa); //leggo il prossimo record
     letti++;
  }
Grazie in anticipo - Francesco

, 
mar...@udini.math.unifi.it
 says...

-- 
// ------------------------------------------------------------
// Antonello Salvatucci
// Software Developer, Technical Writer
// LEGO A/S SPU-Darwin, Kloevermarken 120, 7190 Billund DENMARK
// 
// 
+45 75 33 22 33 ext. 5186
 
anto...@digi.lego.com
Newsgroup: it.comp.lang.c++
Titolo: Classe matrice

Ciao a tutti,
un po' di giorni fa avevo scritto per sapere come potevo fare a creare una
classe matrice che perň avesse la stessa sintassi del C++ stadard (
myMatrix[1][2] = 7; ). Tra le vaire soluzioni che mi sono arrivate ( ^_^ )
quella che ho provato ad implementare č quella trovata tra le FAQ di
www.programmare.it
.
Questa č invece la mia Classe:
********** header****************
#include <vector>
template <class T> class CMatrix
{
private:
 typedef std::vector<T> riga;
 std::vector<T> body;
public:
 CMatrix();
 CMatrix(int i, int j);
 virtual ~CMatrix();
 void SetSize(int i, int j);
 void GetSize(int &i, int &j);
 std::vector<T> &operator[](int i) {return body[i];};
 const std::vector<T> &operator[](int i) const {return body[i];};
};
*****************************************
********* cpp ****************************
#include "matrice.h"
template <class T>
 CMatrix<T>::CMatrix()
 {
 }
template <class T>
 CMatrix<T>::CMatrix(int i, int j)
 {
 }
template <class T>
 CMatrix<T>::~CMatrix()
 {
 }
template <class T>
void CMatrix<T>::SetSize(int i, int j)
{
 int k;
 body.resize(0);
 body.resize(i);
 for (k = 0 ; k < i ; k++)
  body[k].resize(j);
 return;
}
template <class T>
void CMatrix<T>::GetSize(int &i, int &j)
{
 i = body.size();
 if (i) j = body[0].size;
 else j = 0;
 return;
}
********************************
fino qui nessun problema il compilatore non rogna, ma se provo ad usare la
classe in un'altra ricevo errori in compilazione.
Qui sotto come l'ho richiamata nell'altra classe:
Matrix<int> matrice;
 matrice.SetSize(3,3);
 matrice[1][2] = 23;
 int jjj = matrice[1][2];
l'errore che ricevo č:
'return' : cannot convert from 'int' to 'class std::vector<int,class
std::allocator<int> > &'
e si riferisce all'overload del primo operatore[] nella mia classe matrice.
Dove sbaglio? Devo ammettere che le due funzioni overload dell'operatore[]
mi sono molto oscure!
Grazie ancora a tutto l'NG.
Marco
N.B. Se dovesse essere utile uso VC++ 6.0 di MS.

  std::vector<T> body;
 
  std::vector< riga >   body;
Max
Newsgroup: it.comp.lang.c++
Titolo: R: 'nu bastard du puntat!!

 (non badate ai comment)

 
argh! :)
com'č possibile che funzi una cosa del genere?
ehehehe mi da tanti di quei warning ed errori che 100 righe non
bastano---

Newsgroup: it.comp.lang.c++
Titolo: stranezze (per me)

Comincio ad odiare il C++ :(:(:(:(:(
mi spiego: non sono un praticone in programmazione, mi "diletto" solo
quando mi serve, e devo dire che non mi diverte affatto :-(. Comunque
ogni tanto mi tocca...
Le cose che piu' fanno girare le scatole sono quando mi trovo davanti
a problemi del genere che ora vi propongo , che mi sembrano del tutto
stupidi, e cosi' io mi sembro del tutto idiota nel non saperli
risolvere... :-(
1)  un banale ciclo del tipo for(int i=0; i<=10; i++)   [  ......   ]
(ho messo le quadre per le graffe) dove non si sa perche' ma la
variabile i arriva al 9 e poi torna allo 0!  BOH!   e quindi cicla
all'infinito.
Lo stesso ciclo su un listato leggermente diverso funziona. 
2) una variabile "n" che serve come limite ad un for del tipo:
   for (int i=1; i<=n; i++)    [ ..... ] .  
"n" viene definito dall'utente, e puo' assumere valori da 1 a 10.
Tutto bene per valori dall' 1 al 9, (nel senso che il ciclo in for
viene eseguito 9 volte, ma per n=10 viene eseguito 13 volte!!!!
Motivo: alla decima esecuzione dopo una precisa istruzione (in cui
l'utente inserisce un dato che nulla ha a che vedere con "n") , la
mitica "n" pensa bene di cambiare il proprio valore ( che tra l'altro
dipende da che cosa si immette nell'istruzione precedente)... :-( e
prende valori tipo 97 0 108  ect.  
In real life:Massimo Barbon
e-mail:m.ba...@usa.net
 
me...@dei.unipd.it
 
"Era rimasto dunque soltanto lui 
 in possesso della memoria"
 (George Orwell)
 
 
 
 
 

risolvere... :-(
Entrambi i problemi che segnali si spiegano solo con
"sporcamenti" delle variabili di controllo del ciclo da
parte del tuo codice presente entro il corpo del ciclo
stesso -- un qualche puntatore mal utilizzato, aritmetica
d'indirizzi errata, cose del genere.
Alex





intanto ti ringrazio della disponibita', per quanto riguarda i
problemi, il primo l'ho risolto dopo aver postato il mex, si trattava
di una graffa in piu' da qualche parte....  il perche' combinasse quei
casini non so.
Per il secondo se ho ben capito potrebbe succedere questo: la volta
che il ciclo si ripete 10 volte i vado a dare un valore ad una
conponente di un array che non esiste.... potrebbe essere!!!
Per postare il codice cosa intendi? allego un attachement?




Newsgroup: it.comp.lang.c++
Titolo: si può scrive?

ciao
posso scrivere cosě:?
class PIPPO {
  // ...
};
class PLUTO {
  PLUTO();
  PIPPO *pippo;
};
PLUTO::PLUTO()
  : pippo( new PIPPO(...) )
{
  // ...
}
insomma, nel costruttore di PLUTO va bene quella sintassi?

 insomma, nel costruttore di PLUTO va bene quella sintassi?
perche' non provi?


se il compilatore ti permette di scriverlo non è detto che sia
standard.
io tanto per curiosità ho provato questo codice su VC++6.0:
#include <iostream>
class sub {
public:
    sub() { }
    virtual ~sub() { }
    void foo()
    {
        std::cout << "foo\n";
    }
};
class top {
public:
    sub * p_sub;
    top() : p_sub(new sub()) { }
    virtual ~top() { delete p_sub; }
    void check_sub()
    {
        std::cout << "top::check_sub()\n\n";
        p_sub->foo();
    }
};
int main(int argc, char **argv)
{
    top top1;
    top1.check_sub();
    return 0;
}
compila senza errori e funziona.
x crisis: mi dispiace ma non so se è standard o meno
ciao
xaero

     top() : p_sub(new sub()) { }
anche
     top() : p_sub(new sub) { }
sarebbe corretto e standard (e in questo caso equivalente).
--
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: Apprendista...

Salve, fino ad oggi ho solo programmato un pochino con altri linguaggi come
Basic e Pascal. Ultimamente mi sono interessato sopratutto ad applicazioni
grafiche, sopratuto per quel che riguarda il secondo linguaggio, e mi sono
anche divertito. Ora la mia domanda è la seguente, cosa mi serve per poter
realizzare applicazioni per win in C++?
Sopratutto a carattere grafico ma anche di interazione col sistema,
l'esempio che potrebbe accomunare questi aspetti potrebbe essere un semplice
videogioco, di qualsiasi tipo, bi-tridimensionale che sia........ in pratica
la gestione della grafica, delle periferiche, dei dati; so che è un campo
ben ampio, ma devo pur cominciare...... vorrei cercare di slegarmi
dall'ambiente DOS che fino ad ora ho utilizzato...infatti con il P ad
esempio
disegnare una linea è questione di poche righe, ma in C/C++ ?!?!?!?!?
Non so una mazza di ASM.......
Ps: Dove posso trovare un compilatore che mi permetta tutto ciò? mi serve un
ambiante di sviluppo RAD?
Grazie 1000 a tutti ciao!
Alessandro.

Non so una mazza di ASM.......
L'asm non e' indispensabile. Per quanto riguarda la domanda, la semplicita'
nel disegnare una linea dipende dalle librerie che utilizzi, non dal
linguaggio in se'. Sotto windows devi usare la libreria grafica standard, la
GDI; se poi vuoi un controllo totale (o quasi) su cio' che compare a video,
usa anche le DirectX.
Saluti,
    Mardy
Newsgroup: it.comp.lang.c++
Titolo: aprire un programma protetto da password da c

ciao a tutti :)
Come da oggetto.
Ho fatto, per esercizio, un algoritmo che crea tutte le combinazioni di 
lettere data una certa lunghezza.
Per renderlo un pò più utile volevo usarlo per fare un "attacco" ad un file 
zip protetto da pass.
Ma come faccio ad aprirlo e a provare le password da C++? C'è un comando che 
non trovo oppure occorre conoscere e implementare parte del codice del 
programma zip? (o winrar).
Ovviamente non è per hackare chissàche ma è solo per curiosità. Programmi di 
questo tipo sono stati già inventati :)
grazie eventualmente :)
Ciao,
Luca(riello) 

 file zip protetto da pass.
Prima di partire, però, risolvi questo esercizio. Diciamo che una password 
è composta da 6 caratteri e contiene qualsiasi lettera maiuscola e 
minuscola, più cifre e simboli vari. In tutto una settantina di caratteri 
utilizzabili. Quante password devi controllare al secondo, per essere 
sicuro di terminare entro il Natale del 2008?
Max

 ha scritto nel messaggio 
news:d4fvu0$pp0$1...@newsreader.mailgate.org...

Se iniziassi alla mezzanotte di oggi con circa 2,95*10^54 combinazioni da 
testare, cosiderando che mancano 44 mesi al natale 2008, e un mese è 
composto da 2592000 secondi (44 mesi=114048000 secondi) mi occorre un 
processore che faccia circa 2,59*10^46 combinazioni al secondo e un computer 
con vada mai in crash, con un alimentatore di corrente a parte in caso di 
black-out. :) (se ho azzeccato i calcoli).
Non intendo fare un password recover efficiente (li hanno già fatti, alcuni 
con attacchi cosiddetti brute-force, altri con un vocabolario, sempre con 
file.zip... ma non mi interessa il programma in sé, perché per il motivo 
sopra esposto lasciano il tempo che trovano). Mi era semplicemente nata la 
domanda su "come" poter fare una cosa del genere... se fosse necessario per 
esempio conoscere parte del codice sorgente del programma di archivio per 
poter fare una cosa del genere, o se c'è un comando apposito in c++, oppure 
occorre fare qualcosa di molto avanzato.
Mi pare sia una domanda legittima :)
ciao,
Luca(riello)

 testare,
non chiedermi il perché ho sbagliato il numero di combinazioni, perché non 
lo so... mi sembrava strano!
sono 117649000000 combinazioni... => 1031 combinazioni al secondo.
pardon... forse avevo premuto il tasto sbagliato :p
ciao,
Luca(riello)

Newsgroup: it.comp.lang.c++
Titolo: PORNO SCIOCCANTE.......

http://www.c1b.cjb.net
XMGH
B
DV
EV
54V
543
VB6B
H7
5NB5675
JN5W45
W34BN
W54N
E6N
N
7INI222

 ha scritto nel messaggio
news:efHK9.23584$lV4.8...@news2.tin.it...


 Come si potrebbe fare ad impedirlo???
1) Evitando di dargli soddisfazione facendo followups
2) Segnalandolo all'abuse
--
/* C Ya!
 * TIMWorld: Flash News senza confini per utenti TIM,
 * scrivi a 
TIMWorld-...@yahoogroups.com
 o 
www.timworld.tk
 * Cut "DO NOT DISTURB" to reply */

 Questa ci ha proprio rotto!!!
X-Complaints-To: 
newsm...@tin.it
Protesta lě, non quě.
Newsgroup: it.comp.lang.c++
Titolo: DEV-C++ 4

Ragazzi,
che ne pensate di questo prodotto? Qualcuno di voi lo conosce?
Ve lo chiedo perchè l'ho scaricato e a me sembra buono.

> che ne pensate di questo prodotto? Qualcuno di voi lo conosce?
Anche a me sembra buono, genera codice compatto...
Non sono riuscito a far funzionare alcune mie librerie scritte in ASM x
VisualC...
Ho qualche difficoltà con le Direct X.

 che ne pensate di questo prodotto? Qualcuno di voi lo conosce?


Newsgroup: it.comp.lang.c++
Titolo: S.O.S Visual C++

Ciao a tutti!!!
Sono un giovane inespereto alle prese con VC++ 5.0 ed ho una domanda da
farvi:
ho la necessita' di implementare una funzione che mi gestisca l'interrupt 10
(suppongo) in modo da poter posizionare il cursore, all'interno di  una
WIN32 CONSOLE APPLICATION, in un preciso punto dello schermo.
**Cerco di spiegarmi meglio**
vorrei una funzione del tipo:
void PosXY(int P_X, int P_Y);
da poter usare prima di una putchar();
Ho trovato documentazioni sull'interrupt 10 e mi e' sembrato banale
utilizzarlo... finche' non ci ho provato!!!!! :-(
Compilando, con Mic. Visual C++ 5.0, la mia Console Appl. parte ma la
funzione mi "annerisce lo schermo"!!!
Sapete aiutarmi???? :-(
Grazie, Marco'76 ;-)

 wrote in message 7svut0$s3q$1...@e3k.asi.ansaldo.it...

In applicazioni Win32 non ha senso chiamare gli interrupt standard del BIOS.
(non esistono)
Bisogna usare le funzioni dell'API.
In questo caso : SetConsoleCursorPosition(HANDLE,COORD)
Le chiamate agli interrupt si facevano dai programmi per DOS (in modo
reale).
Qualche estensore di DOS lo permetteva, con qualche artificio.

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

ciao questa e' una prova


Ciao. Per provare a fare le prove c'e' "it.test"
Se pero' stai provando se funzionano tutti i newsgroup... fai pure.
Oppure si potrebbe chiaccherare da qualche altra parte.

Newsgroup: it.comp.lang.c++
Titolo: [forse OT] Callback e DLL

Salve,
Ho un'applicazione VB che utilizza una libreria dll (lib1) la quale esporta
un certo numero di funzioni. La lib1 è scritta in C++. Tale libreria asua
volta utilizza una libreria (lib2) di cui non ho il sorgente. L'app VB passa
alla lib1 un puntatore a funzione (tramite AddressOf) per implemetare delle
callback. La lib1 fa la stessa cosa con la lib2, cioè passa ad essa un
puntatore a funzione che può essere quindi chimata dalla lib2.
Il mio problema è questo:
nella funzione di callback della lib1 (chiamata dalla lib2) se provo a
chiamare la funzione di callback del'app. VB mi da errore.
Chi sa aiutarmi?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 chiamare la funzione di callback del'app. VB mi da errore.
Magari dire anche _che_ errore ti da, e dei pezzi di codice usati, 
potrebbe essere d'aiuto: nessuno ha la sfera di cristallo. Anyway, e' 
molto probabile che tu sia OT, e che it.comp.programmare.win32 sia il ng 
che ti serve.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Linux registered user 299762 @ Linux registered machine 213003
Newsgroup: it.comp.lang.c++
Titolo: grandi oggetti

Salve
ho una domanda sui grandi oggetti.
Nel sjostrup (spero si scriva cosi') viene citata
la possibilita' di passare referenze ad oggetti a funzioni,
in questo modo:
int operator*(matrix& a, vector&b)
{
 // prodotto riga per colonna
}
in questa maniera viene detto che non c'e' l'overhead che avremmo
se matrix o vector fossero oggetti grandi.
E' possibile fare una cosa del genere anche con le funzioni membro
di classi? Mi spiego meglio: vorrei fare:
class A
{
 vector & m;
public:
 A(vector & in){m = in;}
}
ma il compilatore (Borland c++ 3.0) mi da' un errore.
Quello che vorrei ottenere in definitiva e' avere un oggetto membro che
punta ad un grande oggetto allocato altrove (invece di copiare il
grande oggetto) senza pero' usare la sintassi dei puntatori: vorrei
passare la referenza all'oggetto alla classe A e fare si' di "copiare"
la referenza
Spero di essermi spiegato...
Grazie in anticipo per l'interesse,
		Guido Gagliardi
passata dentro la classe A

Guido,
Variabili membro di tipo "reference" devono essere inizializzate, come
giustamente hai fatto tu, nel costruttore. La sintassi da usare e', pero',
leggermente diversa e ricalca quella usata per il passaggio dei parametri
ai costruttori delle classi base.
In pratica dovresti scrivere una cosa del genere:
typedef int vector;
class A
{
public:
   vector& m;
   A(vector &in) : m(in){};
};
void main()
{
   vector pippo;
   A pluto(pippo);
}
Spero di averti dato una mano.
Ciao, Angelo.

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

Ciao a tutti.
Ho la seguente dichiarazione:
template <class _pAl> class VP
{
  _pAl  *data;
public:
   VPt(int);
   ~VP( ) { delete[ ] data; }
   _pAl& operator[ ] (int i) { return data[i]; }
   int  iCount;
   int  Find(AnsiString stA);
};
All'interno di una funzione:
.....
....
VP<struct _pAl>  Prf(300);
A questo punto vorrei passare Prf come parametro ad un'altra funzione,
qual'e' la sintassi corretta?
Funz(Prf ????,arg2,arg3,....);
....
.....
void MyClass::Funz( ????,int arg2,int arg3)
....
....
Grazie.

 qual'e' la sintassi corretta?
Dichiari l'altra funzione:
    void altra(VP<struct _pAl>);
e la chiami:
    altra(Prf);
supponendo, naturalmente, che tu voglia passare per valore.
Alex