mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Come gestisco un'errore di IP sbagliato?

Ho messo in un try:
try
  {
  ClientSocket1->Open();
  }
catch (Exception &e)
  {
  ShowMessage("Error");
  }
Il problema è che mi visualizza il messaggio "Error" poi un secondo 
messaggio di errore:
Asynchronous socket 10061
ma non dovrebbe darmi questo errore, ma segnalarmi solo il mio errore 
previsto.
Dove sbaglio?
Grazie

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni, come ad esempio
C++/CLI. 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

 specifiche come la tua.
Grazie. Mi sposto.

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

Ciao,
ecco il mio prolema:
in un programma Visual C++ (MFC)
devo visualizzare il contenuto di un file di testo
in un control di classe CRichEdit.
Come posso fare ?
Grazie in anicipo a chi mi rispondera' ?
Andrea

 
Prova a chiedere su it.comp.programmare.win32 oppure prova ad usare
CRichEditCtrl::StreamIn() e CRichEditCtrl::StreamOut().
Newsgroup: it.comp.lang.c++
Titolo: suggerimenti su costanti globali

Sto scrivendo un  programma (per la precisione un emulatore) ed ho bisogno
di un file "intestazione" in cui sono definite un gran mucchio di costanti
(sono espressioni mnemoniche per non portarmi avanti un'infinità di numeri
in esadecimale che alla fine ti fanno perdere l'orientamento); il problema è
questo:
inizialmente avevo implementato queste costanti con un mucchio di #define,
ma mi sono reso conto che questo eliminava ogni sorta di controllo di tipo e
questo, secondo la filosofia del C++ non è troppo bello, così ho trasformato
questi #define in const ed adesso ho un esorbitante numero di costanti che
affollano il mio ambiente globale (e forse neanche questo è tanto bello).
Quello che vi chiedo è un suggerimento su quali delle due scelte sia la
migliore o se esistono anche altre strade... oh se mi sto ponendo dei
problemi inutli!!
grazie
n!c0
---------------------------
Remove GOAWAY to reply
milk...@tiscalinet.it
----------------------------

 problemi inutli!!
La seconda e` migliore perche` una const anche globale e` pur
sempre meno invasiva di un #define, in quanto non interferisce
con l'uso (ridefinizione) di quell'identificatore in scope
interni o altri namespace.
L'altra strada e` raggruppare le costanti in namespace (se hai
un antico compilatore che non supporta namespace, puoi usare
delle struct o class per raggruppare le costanti, ma namespace
e` piu` pulito e comodo).  E` migliore perche` non "invade", se
non, al massimo, quando tu lo richiedi esplicitamente con using.
Non sono affatto problemi inutili, e fai bene a porteli.
Alex

Anche io ho bisogno di molte costanti, che uso ad esempio per fare dei
controlli. Una volta adoperavo i #define, ma poi mi sono reso conto che
forse e´ meglio usare il costrutto enum per cose del genere:
enum giudizio {FALSO = 0, VERO};
enum macchina {FIAT = 0, VOLVO, BMW};
enum direzione {SINISTRA = 0, DESTRA, SU, GIU};
In tal modo ho pensato che posso avere delle funzioni con parametri di tipo
piu´ ristretto che ad esempio un tipo int.
giudizio fiat_orizzontale(direzione dir, macchina car)
{
    giudizio ret;
    switch (dir)
    {
        case SINISTRA:
        case DESTRA:
            ret = VERO;
            break;
        default:
            ret = FALSO;
    }
    return (ret && (car == FIAT));
}
Ci sono modi migliori per questo genere di problemi?

 affollano il mio ambiente globale (e forse neanche questo è tanto bello).
Potresti utilizzare una classe apposita:
class Costanti
{
    static const int Costante1 = 123;
    static const int Costante2 = 321;
    ...
};
e poi accedere alle costanti con
std::cout << Costanti::Costante1 << std::endl;
std::cout << Costanti::Costante2 << std::endl;
...
EMG


Grazie per l'attenzione. n!c0
Newsgroup: it.comp.lang.c++
Titolo: problemi con std::vector

ho scritto un programmino di prova per studiare il comportamento di
std::vector::erase e ho notato una cosa strana: quando ridimensiono a
crescere un vettore, il costruttore della classe con cui ho fatto il
vettore non viene chiamato correttamente.
il programma è questo:
#include <cstdio>
#include <vector>
using namespace std;
class A
{
	A *x;
public:
	A () { printf("A nasce %p\n",this); x = this; }
	~A () { printf("A muore %p\n",this); }
	void show () { printf("show %p\n",x); }
};
main ()
{
	printf("ciao!\n");
	vector<A> a;//(5);
	a.resize(5);
	for (int c = 0; c < 5; ++c) a[c].show();
	printf("ciao!\n");
	a.erase(a.begin(),a.end());
	printf("ciao!\n");
}
e l'output che mi dà è questo:
touch@summer:~/exps > gcc -v
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
touch@summer:~/exps > g++ erase.cc 
touch@summer:~/exps > ./a.out 
ciao!
A nasce 0xbffff7b8
A muore 0xbffff7b8
show 0xbffff7b8
show 0xbffff7b8
show 0xbffff7b8
show 0xbffff7b8
show 0xbffff7b8
ciao!
A muore 0x804c208
A muore 0x804c20c
A muore 0x804c210
A muore 0x804c214
A muore 0x804c218
ciao!
touch@summer:~/exps > 
al di là di un oggetto che viene allocato e distrutto (boh... servirà a
vector) c'è il problema che sugli elementi del vettore il costruttore
NON è invocato! e quando invoco show mi trovo della roba inconsistente!
è un baco di questa versione del gcc? della stl? di chi?!? o non è un
baco??!
bye & grazie
Touch

 baco??!
ops ^_^;;
ho capito, scusate!!
il problema e' che resize(newsize) chiama a sua volta la
resize(newsize,ele)
cui passa un temporaneo A() (ecco l'oggetto costruito e distrutto)
e questa alloca memoria necessaria e inizializza gli elementi del
vettore usando il copy constructor (definito implicitamente)
bye
Touch

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

Ok. Risolto il problema, capito tutto su come si lavora con il c\c++ ,
la mia domanda è la seguente:
se il programma comincia:
main() {
...
}
se devo implementare una classe, mi basta richiamarla con
#include
...
come mai quando la eseguo dal compilatore( file.exe) mi dice che manca il
file bacth!!!!

 wrote in message
news:8pv5r6$5aq$1...@pluto.sm.dsi.unimi.it...

Newsgroup: it.comp.lang.c++
Titolo: "set of...."

qualcuno ha qualche idea su come implmentare in C/C++ il tipo "set of" di
Pascal?????
Se potete, rispondetemi via email, oltre che sul ng. Grazie
--
===========================
Carlo Fabris
standard mail: 
cle...@iol.it
alternate mail: 
carlo....@iol.it
ICQ: #31974405
phone: 
+39-329-2251004
===========================

Pascal?????
In C non si puo' fare, mentre in C++ si' (tramite i template), ma per
maggiori informazioni chiedi su it.comp.lang.c++.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

Pascal?????
In C non si puo' fare, mentre in C++ si', tramite i template, ma per


 Se potete, rispondetemi via email, oltre che sul ng. Grazie
In e-mail e su TRE ng in cross-post...?  Boh... avrai proprio
una fretta indiavolata...?-)
C++ ti offre varie possibilita`, come std::vector<bool> (che
normalmente e` ottimizzato come specializzazione, e quindi
diventa equivalente alla tipica implementazione Pascal di
set-of), il template std::set<T> (piu` generale, e quindi meno
ottimizzato), e vari modi di riprodurre tu stesso le loro
funzioni.
Tutto questo non si applica al C, dove la cosa piu` semplice
e` senza dubbio usare gli operatori di shift e booleani per
implementare le funzionalita` del set come bit-vector (con
limiti analoghi a quelli del set-of Pascal, tipo, non piu` di 256
elementi nel tipo-base del set).  Ad esempio, fissando il
numero di elementi del tipo-base a _esattamente_ 256 (i
numeri, o unsigned char, da 0 a 255), e usando le macro
di preprocessore per ragioni di velocita`, ecco myset.h:
typedef unsigned char[32] myset;
// svuota un myset
#define ms_empty(ms) memset(ms, 0, sizeof(ms))
// due macro per uso interno
#define _ms_index(i) (31 & (((unsigned)i)>>3))
#define _ms_mask(i) (1<<((i)&7))
// le tre macro-chiave (aggiunta, rimozione, test di appartenenza)
#define ms_addelem(ms,i) ((ms)[_ms_index(i)] |= _ms_mask(i))
#define ms_remelem(ms,i) ((ms)[_ms_index(i)] &= ~_ms_mask(i))
#define ms_haselem(ms,i) ((ms)[_ms_index(i)] & _ms_mask(i))
// una macro di utility
#define ms_foreach(ms,i) for((i)=0; (i)<256; ++(i)) if(ms_haselem(ms,i))
Ed ecco un tipico esempio-giocattolo d'uso -- emette su
standard output tutte e sole le lettere presenti su standard
input:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "myset.h"
int main()
{
    int c;
    myset ms;
    ms_empty(ms);
    while( (c=getchar()) != EOF)
        if(isalpha(c))
            ms_addelem(ms, c);
    foreach(ms,c)
        putchar(c);
    putchar('\n');
    return 0;
}
Alex

 maggiori informazioni chiedi su it.comp.lang.c++.
Informazione gratuita: *siamo* su it.comp.lang.c++

you wrote:


veramente siamo su 3 ng diversi !!! osserva il crosspost !


Grazie a tutti quelli che mi hanno dato una mano!
Spero solo di non aver ifranto regole di netiquette, inviando il messaggio
contemporaneamente a tre ng!!!


Newsgroup: it.comp.lang.c++
Titolo: Calling programs with parameters

 John.


Newsgroup: it.comp.lang.c++
Titolo: Ancora su classi derivate

Siano:
class A {
const in ciao;
}
class B: public A
{
...
}
Come mai, nella lista di inizializzazione del costruttore di B, non posso
inizializzare ciao?
B::B(const int v): ciao(v)
{
...
}
Mi da errore.
Mentre, e lo credo!, lo posso fare nel costruttore di A?
A::A(const int v): ciao(v)
{
...
}
Per ora ho risolto scrivendo così il costruttore di B:
B::B(const int v): A(v)
{
...
}
Ma non ho capito perchè non posso farlo direttamente.
--
Stefano Pettini
Risposte solo sul newsgroup, please.

 }
hai dichiarato una classe A con un membro privato, se poi derivi
pubblicamente da A non puoi accedere ai membri privati di A...
il default nelle classi e' private, cosi' dovrebbe funzionare:
class A {
public:
const in ciao;
}
class B: public A
{
...
}
pero' chiunque puo' accedere a ciao...
se cerchi protected nell'help, scoprirai che un membro protetto e'
accessibile alla classe ed ai suoi discendenti ma non all'esterno...
class A {
protected:
const in ciao;
}
class B: public A
{
...
}
Buona fortuna, ciao Davide

B::B(const int v): A(v)
Questa e` la via corretta (sotto ogni punto di vista)
di fare le cose.
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: time!

c'e' un modo in c++ per scrivere la data e l'ora in un file (quindi la
creazione di un file di log)?

 creazione di un file di log)?
Non ho capito quale sia il tuo problema.
Per accedere al tempo di sistema esiste l'header <ctime>. Per scrivere in un
file usi normalmente un ofstream.
--
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



Prova con qualche cosa del tipo:
time_t     now = time(0);
struct tm *pNow = localtime(&now);
std::cout  << "Time : " << asctime(pNow) << std::endl;
Questa e' solo un'idea.
Ciao
Gaetano.
-- 
Posted from 
dell-01.mm.eutelsat.org
 [194.214.173.17] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Non potrebbe usare le direttive:
__DATE__
e
__TIME__    ???
--
Luigi
byte...@hotmail.com
http://web.tiscali.it/luigi_web
ICQ #46240443

 
Con queste ottieni data e tempo nel momento in cui
il file che le contiene e' stato compilato, e vengono usate
per altri motivi.
COUCOU voleva un metodo per creare dei log file
con data e tempo nel momento in cui ogni linea viene
inserita nel log (almeno questo ho capito).


Si, hai ragione. Ma pensavo che gli bastasse solo data e ora del momento in 
cui compilava.
Ciao+
-- 
Luigi
bug windows [5] = {"95", "98", "NT", "Me", "2000"};
Email: 
byte...@hotmail.com
Web Site: 
http://web.tiscali.it/luigi_web
ICQ #46240443
Newsgroup: it.comp.lang.c++
Titolo: Funzionalità imposte

Ogni tanto  qunado mi alzo la mattina,  sbattendo con la testa sull'armadio
sovrastante il letto , mi vengo strane idee in testa.
Vi espongo :
Mi piacerebbe aggiungere alcune funzionalità del menu' attivabile con il
pulsante destro del mouse, su qualunque window usata dal sistema.
In altre parole,mi piacerebbe che premendo il R-Button su qualunque window
(compresi i conrtrolli) di qualunque applicazione, appaia un  menù con
alcune voci aggiuntive da me create.
Qualuno ha qualche dritta in proposito ?
byebyte
Amos

Dimenticavo : Win32 e Visual C++ 6.

(compresi i conrtrolli) di qualunque applicazione, appaia un  menù con
Presumibilmente dovrai cominciare con un hook che intercetta
R-Button, ma e` solo l'inizio, perche` a questo punto, cioe`
sapendo che il bottone destro e` stato premuto, inizia il dramma
di capire se l'applicazione gia` genera un menu di contesto (e
poi il sotto-dramma di infilare in quel menu le tue voci extra)
oppure no (e in effetti l'applicazione sulla pressione del tasto
destro potrebbe fare qualsiasi cosa, da nulla a chiudersi ecc
ecc).  Auguri.
Alex

Grazie per la dritta e gli auguri.

Newsgroup: it.comp.lang.c++
Titolo: C++ e Python

Ciao a tutti.
In rete ho letto qualcosa in merito al linguaggio C++ e Python. C'č chi dice 
che conviene iniziare  a studiare la programmazione partendo da C++ per poi 
passare al Python. Chi sostiene il contrario ecc. ecc.
Molti sostengono che il C++ ti permette di fare cose vicine alla macchina. 
E' piů flessibile ecc. ecc.
Mi fate un esempio di cosa C++ puň fare e che non č possibile con Python? 
Naturalmente anche il contrario.
Grazie anticipatamente a tutti.
nero23

 Mi fate un esempio di cosa C++ può fare e che non è possibile con Python? 
In C++ è possibile creare nuovi oggetti che possono essere messi 
direttamente sullo stack. In Python, come in tutti i linguaggi di alto 
livello, gli oggetti definiti dall'utente vengono sempre allocati nello 
heap.
E.

 
Ciao  Manlio Perillo
Newsgroup: it.comp.lang.c++
Titolo: Da double a char

E' possibile trasformare un numero in formato double in un array di
caratteri?
Grazie.
Luca Carlon

 Grazie.
Una cosa del genere:
Char* buffer[64];
double numero;
cin>>numero;
sprintf(buffer,"%d",numero);
Ciao
Newsgroup: it.comp.lang.c++
Titolo: FE per DB

Provo a postare nuovamente la mia domanda.
Data la mia ignoranza riguardo al C è possibile che
l'idea di sviluppare un front-end per Acces in C/C++
sia improponibile, ma anche in questo caso gradirei
se qualcuno me lo facesse notare magari indicandomi
un altrenativa free (nel senso di gratis ;)).
Ho creato con Access un piccolo DB.
Ora mi serve un front-end di questo DB
per ogniuno dei 5 PC della rete aziendale.
Per risolvere la questione senza dover sborsare
altri quatrini in licenze, pensavo di utilizzare
il C/C++ per sviluppare un'interfaccia grafica,
connettendomi poi via ODBC al DB.
La cosa e' fatibile???
Tnks! ;)
---
leo_duca

 ha scritto nel messaggio
news:fU5F8.72709$5k4.1...@twister2.libero.it...



Grazie! :)
---
leo_duca

Newsgroup: it.comp.lang.c++
Titolo: AIUTATEMI VI PREGO!!!!!!!

Salve sono un novizio programmatore con MFC, ho creato un webbroser con il
controllo ActiveX della Microsoft ma ho bisogno che all'avvio apra una
pagina predefinita non in linea (p.e. index.htm) che si trova nella stessa
cartella del mio programma.
Grazie tante per la risposta (che spero arrivi presto!)

...


Newsgroup: it.comp.lang.c++
Titolo: visibilita'

Ciao a tutti,
ho creato tre file .cpp, di cui uno contiene il menu ( molto primitivo
ma pur sempre un menu :/ )  e un header che contiene le definizioni di
procedure e funzioni, nonchè le variabili globali dei due file .cpp
che verra' incluso in tutti e tre i file.
Ho messo nei due file sorgenti le funzioni secondo la seguente logica;
in un file le funzioni di inserimento e di stampa a video e nell'altro
le funzioni che contengono gli "algoritmi". Il mio problema e' questo.
Dichiaro nell'header la variabile di tipo intero top e la inizializzo
a 0, nel momento in cui vado a compilare, il compilatore mi dice
cl3Lib.cpp cl3Lib.o(.data+0x0) multiple definition of `top'
classe3.cpp classe3.o(.data+0x0) first defined here
mentre mettendo le funzioni in un solo file .cpp e dichiarando e
inizializzando la variabile top all'inizio del file stesso tutto va a
gonfie vele. Perche'?
ps. se puo' interessare uso Dev-C++
Grazie ancora a chi vorra' rispondere alle mie forse banali domande.

 a 0, nel momento in cui vado a compilare, il compilatore mi dice
Quella non è soltanto una dichiarazione, ma è anche una *definizione*. Una
variabile globale può essere *dichiarata* in ogni unità di compilazione,
ma in tutto il programma deve essere definita una volta e non più di una.
Per farla breve, nell'header metti:
   extern int top; // dichiarazione
e in un file .cpp:
   int top = 0; // definizione
Max

Max
Ciao Max,
grazie per il chiarimento, ho provato a ricompilarlo in questo modo,
ma il compilatore mi dice la stessa cosa di prima.

On Tue, 18 Feb 2003, Cavaliere wrote:

Se la definizione compare in una sola unitą di compilazione e tutti i file
.cpp che includevano l'header in questione sono stati ricompilati, il
linker non puņ darti lo stesso errore.
Max

Max
Purtroppo mi da' lo stesso errore, non me lo da' solo se lascio il
tutto in un *unico* file .cpp
Newsgroup: it.comp.lang.c++
Titolo: codici sorgenti eccoli qui....

Ciao, stiamo cercando qualsiai programmatore anche alle prime esperienze ,
l'importante che abbia codici sorgenti , perche' stiamo cercando di formare
un gruppo dove creare un archivio di codici sorgenti che ci possano servire
per imparare a programmare.
questo gruppo non e' altro che un forum dedicato alla richiesta oppure ad
inserire codici sorgenti scritti in c.
Quindi se sei esperto o sei alle prime armi visita il forum ed inserisci
tuoi codici sorgenti, anche codici di esempi.
L'importante e' formare l'archivio.
http://www.oraparloio.org/phpbb/viewforum.php?f=27

 inserire codici sorgenti scritti in c.
*ping!* Complimenti! Il vostro e' il milionesimo forum sulla 
programmazione aperto nell'ultimo quarto d'ora. Se ne sentiva proprio la 
mancanza. Chissa se SourceForge riuscira' a sopravvivere...
Ciao,
Nicola
N.B.: Questo messaggio aderisce alla campagna contro l'abuso degli smilie.

Newsgroup: it.comp.lang.c++
Titolo: Documentazione libreria standard C++

Salve,
vi devo chiedere un altro favore: qualcuno sa dove reperire la
documentazione delle classi e dei metodi della libreria standard del C++?
Non mi riferisco alla parte della STL, per la quale ho un'ottima
documentazione, ma per tutto il resto, ovvero classi e metodi di iostream,
string, etc
Mille grazie per la seconda volta di oggi :-),
Lanugo

 iostream, string, etc
l'ottimo "Thinking in c++" di eckel (
www.bruceeckel.com
) e' un buon 
punto di inizio, poi c'e' l'help del c++ builder 3 che e' scaricabile 
gratis dal sito borland

Qui c'e' una documentazione online, riferita all'implementazione usata
tra l'altro dalla Microsoft:
http://www.dinkumware.com/htm_cpl/index.html
 .
Se hai soldi da spendere ti consiglio "The Standard C++ Library", di N.
Josuttis, Addison Wesley.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: [RISULTATO] it.comp.lang.assembly approvato


iQA/AwUBPQj4CuRPfmnmiMfjEQKXtgCfYUnKO16j1KzLMhKdgHyXu4tpPP4AoJ0D
6zTQEo962S3j81tqN0C0FlJC
=J0eU
-----END PGP SIGNATURE-----
-- 
RSA fingerprint: ABB5 6DA7 C3F5 F9E7  EEE4 7FD2 32FE B16D
DH/DSS   "     : BAA6 9BAD E0CB 894B 2E41  4519 E44F 7E69 E688 C7E3
PGP public key available on keyservers

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il numero dei voti favorevoli e validi pervenuti fino ad ora è superiore
ai 100 richiesti, a giudizio del GCN.
Pertanto la votazione per il newsgroup in oggetto viene interrotta, e il
gruppo it.comp.lang.assembly viene approvato.

+--------------------------------------------------------------

+--------------------------------------------------------------





iQA/AwUBPQj7lORPfmnmiMfjEQKkiQCggyWNntNonjoQLOrl15nVV+XBEnkAoJJe
wDyYyJo/hA6MrEL/CWL5IIUS
=46OL

Newsgroup: it.comp.lang.c++
Titolo: Dove recipero specifiche IDL

Mi servirebbero delle specifiche su linguaggio IDL.
Niente di super, ma almeno le basi.
Meglio se in un linguaggio umano.
Nessuno sa suggerirmi qualche cosa?
Ciao, Michele.

Meglio se in un linguaggio umano.
In linguaggio umano? Allora non so :-)
Dai un'occhiata al libro di Al Major per Wrox Press su IDL e il design di
interfacce. Niente di eccezionale, ma forse nel tuo caso puo' avere una
utilita'.
Anteprima mondiale: un collega in DevelopMentor UK lavorando ad un libro
avanzato su IDL per Addison-Wesley...
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Novellino :-)

Salve,come da oggetto sono un novellino che però sa già un po' di
programmazione,ma che vorrebbe imparare a usare il C++
Comprando la rivista ioProgrammo ci ho trovato dentro il cd con il C++
Builder 3.0 e ho deciso di installarlo
A quanto pare è stupendo...
ci ho scritto dentro il codice per il più classico "Hello world" però quando
lo salvo mi permette di salvarlo in tantissimi tipi tranne che un normale
file .exe.
Io mi sono scaricato da internet dei files "guida" che sono .cpp,ma che
praticamente si aprono anche con il notepad..Quindi tanto vale installarsi
il C++ Builder...
Se qualcuno fosse così gentile da potermi spiegare bene a cosa serve il C++
Builder e come faccio alla fine ad avere files .exe gli sarei eternamente
grato (su tutte le guide che trovo c'è solo scritto COME si programma dal
punto di vista logico,ma non queste cose che credo per voi siano
semplici...)
Grazie mille
Titus
www.logosoft.it/titus

 file .exe.
Per ottenere un file exe devi prima compilare il programma e sperare di non
aver fatto errori :).
Io non conosco il C++ Builder, ma sono sicuro sul menu'  principale troverai
una voce del tipo "compile" oppure "build".

 wrote in message
news:983jjs$4tb$1...@serv1.iunet.it...


grazie mille :-)
ora il fatto è imparare a programmare in C++ ^_____^
"Bob Rock" <there_is_no_business_like_showbusiness@_NO_SPAM_hotmail.com> ha
scritto nel messaggio news:9869pf$kn1$1...@taliesin.netcom.net.uk...

Newsgroup: it.comp.lang.c++
Titolo: Report

Salve a tutti,
    sto scrivendo un'applicazione di tipo database in Visual C++ 4.0
(interfacciandomi attraverso DAO a un file MDB) volevo sapere in quale modo
si può scrivere un report, o se si può importare dal file mdb.
Grazie in anticipo per l'aiuto che potrete darmi.
Mandi,
            Max
--------------------
Massimo Buiatti
(rimuovere max- per rispondere)
ICQ: 3673676

Vorrei un consiglio, se è possibile, da esperti VISUAL C++
Programmo già da alcuni anni in C. Volendo passare ad un linguaggio più
moderno è più conveniente investire in C++ o in J++.
Alla SMAU ho ricevuto da esperti Microsoft due risposte antitetiche.
C'è qualcuno di voi così gentile da darmi una spiegazione senz'altro
disinteressata?
    Grazie in anticipo
                    Pippo

moderno è più conveniente investire in C++ o in J++.
per fare cosa ? Non si puo' dare una risposta senza sapere cosa ci
devi fare :) Comunque mi pare che come linguaggio general purpose
Java sia ancora immaturo.
Gianpaolo Bottin
- Live Long and Prosper -

...


 orientate al web.
Ohibo', mi vedo costretto ad intervenire :) Ho una certa esperienza conentrambe
le piattaforme (Java e C++, il C e' decisamente meno
confrontabile) e, per quel che vale, la mia opinione e' che cio' che
Gianpaolo afferma non sia affatto vero: e non per motivi di "religione"
(ricordate, Spectrum contro C64 o Ampex vs. Zenith ? :)), ma per
pragmaticissimi motivi di produttivita', manutenibilita' e pulizia del
codice.. *oltre* ad un efficienza piu' che ragionevole per molte
applicazioni, commerciali e ..commerciabili. $-)
Non entro nei dettagli, per motivi di spazio e tempo. Vero e' che Java
richiede, per certi versi, una maggiore padronanza dei concetti, le
tecniche e le metodologie OO per essere usato al meglio - altrimenti,
concordo, si rischia di rimanere alle applet di animazione.
Infine, una considerazione (la stessa che, del resto, qualche anno fa
valeva per C++): applicazioni 'serie' in Java esistono, eccome,
addirittura con la versione 1.0, decisamente limitatina sotto alcuni
aspetti (anzi, per cio' che ne so, sono la maggioranza).
Il problema e' che, tendenzialmente, non sono prodotti 'shared', ma
costruiti ad hoc - e gelosamente custoditi, come fonte di vantaggi
competitivi. Quindi, se non si vede granche', puo' non esserci molto..
ma e' anche possibile che si stia guardando nella direzione
sbagliata. :)
Saluti,
    Cris
--
Cristiano Sadun - Software Engineering and Consulting
***********Remove NOSPAM from address to reply***********
*********************************************************
"God is Real - unless declared Integer"

...
mah, comunque non e' che li veda tutti questi programmi scritti in
Java. Perlomeno nell'ambito del mio lavoro (automazione e supervisione
industriale) la quasi totalita' del software e' scritto in C/C++ con
qualche (sfortunato) caso di Visual Basic.
Comuque sarei curioso di sapere di che genere di programmi si tratta e
su quali piattaforme girano.

Newsgroup: it.comp.lang.c++
Titolo: Esercizi su vettori

Come compattare un vettore?
(togliere eventuali elementi nulli)
Come invertire un vettore?
Grazie

 Come invertire un vettore?
Trovi tutto dentro <algorithm> (remove* e reverse*; l'asterisco sta per
le differenti versioni)
Ciao
Gian Michele

Newsgroup: it.comp.lang.c++
Titolo: graphics.h

Salve a tutti: potreste cortesemente dirmi "dove" posso trovare un file
graphics.h??? Ne ho bisogno.
Grazie. Antonio.

graphics.h??? 
/* graphics.h */
#ifndef GRAPHICS_H
#define GRAPHICS_H
#endif
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

Dipende dalla libreria a cui appartiene. Non e' un header standard del
C++ per cui ti suggerisco di chiedere su un newsgroup maggiormente
orientato alla piattaforma ed alle librerie che usi.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: aiuto sugli include

Dove posso trovare l'elenco di tutti i comandi che ogni include include?
Cioč, non so come spiegarmi, ad esempio se uso POW devo mettere prima
#include <math.h>
quello che volevo sapere č dove trovare tutti i comandi inclusi in math.h e
negli altri.
-- 
Roberto Pazzini
#158 dei FeSTosi
Webmaster di Arrampicata.net
http://www.arrampicata.net
Webmaster di 
http://www.marcosalvatori.it

 math.h e negli altri.
 
Aprili uno ad uno e ti togli la curiosità!
Oppure, un bel libro...

 Aprili uno ad uno e ti togli la curiosità!
come si aprono e dove li trovo?
Scusa l'ignoranza ma sto iniziando ora


 Scusa l'ignoranza ma sto iniziando ora
Dipende dal compilatore. Leggiti la documentazione del tuo compilatore.
Oppure, soprattutto se sei agli inizi e vuoi imparare a programmare bene,
compra un buon libro. Cmq, che compilatore hai?

 compra un buon libro. Cmq, che compilatore hai?
Come libro ho acquistato "fondamenti di programmazione C++" Deitel & Deitel
Come compilatore, inizialmente avevo messo Visual C++ ma ha troppe cose in
relazione a quello che serve a me ora e quindi sto usando il piů semplice ed
essenziale DEV C++ (che č pure aggratis)


 il più semplice ed essenziale DEV C++ (che è pure aggratis)
 
E che è free software e include uno dei migliori compilatori esistenti
(il porting del GCC per windows, mingw)!
cmq, allora dovrebbero essere in C:\DEV-C++\INCLUDE.

 cmq, allora dovrebbero essere in C:\DEV-C++\INCLUDE.
Li ho trovati, ma come faccio a vedere che comandi contiene ogni include?


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

Buongiorno a tutti, 
qualcuno saprebbe dirmi come posso dirigere un flusso alla stampante?
Ho letto in una vecchia lettera che bisogna definire il seguente
ofstream:
ofstream prn(4);
Se e' giusto, dopo come tratto la variabile prn(4)? Devo aprirla e
gestirla come un file
normale, perche' facendo cosě non ho ottenuto nulla!!
Premetto che la stampante che sto utilizzando e' in rete, cio' potrebbe
creare dei problemi?
Grazie mille in anticipo,
Linda.

 creare dei problemi?
Certo che crea problemi. In quel caso devi aprirne il nome completo di
percorso di rete come fosse un normale file.
EMG


La mia stampante si trova sul PC Softsv sul file pana, pertanto ho
scritto:
ofstream prn(4);
prn.open("\\\\Softsv\\pana");
prn.write("ciao",4);
prn.close();
ma non ho stampato niente! Ho anche provato con
prn.open("\\Softsv\pana"); 
con gli stessi, deludenti esiti!!!
Grazie ancora per l'aiuto,
Linda.

 con gli stessi, deludenti esiti!!!
Prova
ofstream prn( "\\\\Softsv\\pana" );
prn << "Prova di scrittura sul file" << endl;
EMG

con gli stessi, deludenti esiti!!!
In che ambiente stai lavorando? Ti comunico che il sistema che hai
appena descritto funziona solo sotto DOS.
Il Ghenio
-----
Jesse: Preparatevi a passare dei guai.
James: Dei guai molto grossi!!!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c++
Titolo: URGENTE! Gestione uscita da un Edit Control!

Salve a tutti,
       precedentemente avevo chiesto informazioni  sull'evento EXIT da
       una Edit. Da <C System> mi era stato risposto:
        > nella mappa messaggi utilizza 	
	ON_COMMAND(IDM_FILE_EXIT,OnFileExit);
        > con la funzione void CMainWindow::OnFileExit()
        > {sendmessage(WM_CLOSE,0,0);}
        Innanzi tutto per EXIT intendo lo spostamento del fuoco da un
        Edit control ad un altro control qualsiasi. Poi, la lista dei 
        messaggi associati dal Wizard al controllo di cui voglio 
        gestire l'uscita non comprende IDM_FILE_EXIT, in quanto sono 
        tutti messaggi del genere EN_KILLFOCUS, EN_DESTROY, EN_CHANGE,
        ecc.. Fra questi messaggi non ne trovo nessuno che faccia al 
        caso mio.
        Come devo comportarmi? E' di vitale importanza in quanto e' 
        una delle  ultime cose che mi separano dal teminare un 
        applicativo.
        Grazie.
        Enrico

>Perch=E8 EN_KILLFOCUS non ti va bene ?
Quando l'ho provato non mi catturava sempre il giusto evento.
Pero', vista la tua sicurezza, mi fai venire dei dubbi sulla mia 
implementazione. Riprovero'. Nel caso ci siano ancora problemi	
riscrivero' sul NG.
Bye
Enrico

Newsgroup: it.comp.lang.c++
Titolo: Me lo sono perso ?

Qualche giorno fa ho spedito una lettera a questo NG, ma.... pare che quelle
antecedenti al 31 / 01 non le scarichi più. Se qualcuno mi aveva risposto,
può farlo ancora ? Grazie !
Probabilmente non ho capito una caratteristica fondamentale delle suddette.
Pensavo che le notifiche di una DBar arrivassero direttamente alla finestra
frame, ma non sembra che la cosa funzioni.
Mi spiego meglio: avevo incapsulato in un campo della finestra frame un
dialogo
CDialogBar GN_dbar ;
questa dbar, conteneva un controllo slide, ma quando ho riscritto il metodo
OnVScroll ( ho provato anche con OnHScroll ) della finestra frame, mi sono
accorto che la notifica non le arrivava
Allora ho implementato una classe derivata da CDialogBar e ho constatato che
invece quella la notifica la riceveva.
Ma, non dovevano funzionare con lo stesso principio delle ToolBar ?
Sergio

Ma, non dovevano funzionare con lo stesso principio delle ToolBar ?
mah, riguardo al WM_HSCROLL non so dirti nulla, comunque con il
WM_DRAWITEM e' cosi, anzi fino ad un certo punto (forse fino al 4.2)
i messaggi di notifica venivano rimbalzati alla frame window (come
nelle toolbars), poi da una certa versione del VC non e' piu' stato
cosi', infatti mi sono trovato improvvisamente con un paio di
programmi che avevano dei combo owner draw nelle dialog bar
completamente vuoti. L'unica soluzione e' stato derivare una classe da
CDialogBar e gestire li' il WM_DRAWITEM.
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: corsi, siti e tutarial sul borland c++ builder

Ciao a tutti, conosco il c++ ma non ho mai utilizzato il c++ visuale della
borland, qualcuno mi sa dire dove posso trovare informazioni (libri, siti,
tutorial...)... GRazieee


c' e' in giro da consultare on the web il libro borland c++ builder
unleashed basta fare una ricerca con altavista o similari con queste parole.
Il sito non lo ricordo da dove l' ho scaricato ed e' abbastanza valido.

I punti di partenza migliori sono il sito Borland (ovviamente
www.borland.com
) ed i newsgroup che la Borland stessa gestisce dal
server 
newsgroups.borland.com
.
Ovviamente tutto in inglese...
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: HELP sulla libreria grafica in TURBO C++ 3

Salve a tutti, nel mio programma vorrei includere la grafica, mi sono
documentato su questo ed ho cercato tra le varie voci dell'help del TURBO
C++ della Borland.
Ho visto un esempio (quello per disegnare il rettangolo) l'ho provato a
compilare e fin qui tutto ok, ma quando lo eseguo mi dà errore nel linking
perchè????
Riporto qui di seguito l'esempio.
Grazie per il preziosissimo aiuto!!!!!
SIC ET SIMPLICITER!
**********************************
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int left, top, right, bottom;
   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");
   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)  /* an error occurred */
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
   }
   left = getmaxx() / 2 - 50;
   top = getmaxy() / 2 - 50;
   right = getmaxx() / 2 + 50;
   bottom = getmaxy() / 2 + 50;
   /* draw a rectangle */
   rectangle(left,top,right,bottom);
   /* clean up */
   getch();
   closegraph();
   return 0;
}

perchč????


 perchč????
Se l'errore e' in esecuzione potrebbe essere che non trova il driver.
Il terzo parametro di initgraph dovrebbe essere il path per trovare
i driver grafici della Borland (sempre se la libreria grafica e' la
stessa del Turbo Pascal). Se non li trova si ha graphresult() != grOk
e viene stampato il messaggio di errore.
	Mauro

, 
atti...@hotmail.com
 says...
Ciao
Io ho provato il codice con la versione 5.1 del compilatore della Borland 
e funzione bene.
Due accorgimenti che devi prendere sono:
1) Quando imposti il progetto indicare che vuoi utilizzare le librerie       
BGI.
2) Copiare sotto la directory dove apri il progetto anche il file 
egavge.bgi che pendo troverai nella directory BGI del tuo compilatore.
Prova e spero di esserti stato utile.
Ciao
				Pevar...

Newsgroup: it.comp.lang.c++
Titolo: Memory leak during intensive CFile I/O

When using CFile or any other standard file I/O, I get huge memory leaks up to
the point where all the physical memory is wasted. At that point, the
application hangs.
My extensive File I/o consists in: creating a file every 20 seconds, writing
binary data in it and closing it.
I tried flushing prior to closing without any effect.
Any help appreciated.  GIOM
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

,


Newsgroup: it.comp.lang.c++
Titolo: Algoritmo LZ77

Ciao,
qualcuno ha implementato o sa dove è possibile trovare una
implementazione dell'algoritmo LZ77 (o altri algoritmi della famiglia
LZ) in C/C++ o Java??
thanks!!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
-- 
Ciao.
Roberto Rossi
Web   : 
http://rsoftware.altervista.org

 thanks!!
http://www.krugle.com/
Newsgroup: it.comp.lang.c++
Titolo: ottimizzare parsing linee con regex

vorrei ottimizzare un po' questa funzione:
struct data
{
    int month, day, hour, minute, second, number;
    float Vfinal, HV, I;
};
data parse_line(std::string line)
{
    data d;
    static const boost::regex re("([A-Za-z]{3}) +(\\d+) +(\\d{2}):(\\d{2}):
(\\d{2}).*: +ch +(\\d{1,2}).*?(\\d+).*?([0-9\\.]+).*?([0-9\\.]+).*?");
    static std::map<std::string,int> month_name;
    month_name["Jan"] = 1;
    month_name["Feb"] = 2;
    month_name["Mar"] = 3;
    month_name["Apr"] = 4;
    month_name["May"] = 5;
    month_name["Jun"] = 6;
    month_name["Jul"] = 7;
    month_name["Aug"] = 8;
    month_name["Sep"] = 9;
    month_name["Oct"] = 10;
    month_name["Nov"] = 11;
    month_name["Dec"] = 12;
    boost::cmatch matches;
    if (boost::regex_match(line.c_str(), matches, re))
    {
	d.month = month_name[std::string(matches[1].first, matches[1].second)];	
	d.day    = atoi(string(matches[2].first, matches[2].second).c_str());	
	d.hour   = atoi(string(matches[3].first, matches[3].second).c_str());	
	d.minute = atoi(string(matches[4].first, matches[4].second).c_str());	
	d.second = atoi(string(matches[5].first, matches[5].second).c_str());	
	d.number = atoi(string(matches[6].first, matches[6].second).c_str());
	d.Vfinal = atof(string(matches[7].first, matches[7].second).c_str());	
	d.HV     = atof(string(matches[8].first, matches[8].second).c_str());	
	d.I      = atof(string(matches[9].first, matches[9].second).c_str());	
    }
    else
    {
	// ...
    }
    return d;    
}
In particolare non mi piace la parte di conversione dei tipi.


e perch� mai? mi pare sia la cosa pi� veloce e sana e atoi dovrebbe 
essere standard..
Newsgroup: it.comp.lang.c++
Titolo: visualizzazione immagini

Volevo fare un semplicissimo programma per far visualizzare una immagine
(bel mio caso .bmp) su una finestra di dialogo dentro un Group Box, o che
sia.
La finestra ha solo 2 pulsanti uno per caricare l'immagine e una per
chiudere la finestra.
Riesco a caricare l'immagine ma non a visualizzarla.
Ho usato MFC per creare il tutto
Il listato seguente l'ho messo dentro la funzione associata al pulsante apri
( e per lo meno quello funziona, la finestra apri funziona) ho aggiunto 2
variabili nel programma:
CString m_sBitmap
CBitmap m_bmpBitmap
<<<<<<<<<<<<<<<<<<<<<<<<<<<<inizio>>>>>>>>>>>>>>>>>>>>>>>>>>
//realizzo un filtro per le immagini bmp
 static char BASED_CODE szFilter[] ="Bitmap file (*.bmp)|*.bmp|Jpeg image
(*.jpg)|*.jpg||";
 //Crea la finestra OPEN//,
 CFileDialog m_ldFile(TRUE,"*.bmp",m_sBitmap,
  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
 //mostra la finestra open e cattura il risultato
 if (m_ldFile.DoModal()==IDOK)
 {
  //determina il nome del fle selezionato
  m_sBitmap = m_ldFile.GetPathName();
  //carica il file bitmap
  HBITMAP hBitmap=(HBITMAP)::
   LoadImage(AfxGetInstanceHandle(),
       m_sBitmap,IMAGE_BITMAP,0,0,
       LR_CREATEDIBSECTION|LR_LOADFROMFILE);
  //vi è un handle valido per l'immagine appena caricata?
  if(hBitmap)
  {
   //cancella la bitmapcorrente
   if(m_bmpBitmap.DeleteObject())
    //se vi è già una associazione la elimino
    m_bmpBitmap.Detach();
   //associo la bitmap appena caricata
   m_bmpBitmap.Attach(hBitmap);
  }
 }
ShowBitmap(&dc);
<<<<<<<<<<<<<<<<<<fine>>>>>>>>>>>>>>>>>
ora il problema sta nel visualizzarlo,non so come fare, non capisco come
accedere ai dati caricati in memoria
se non sbaglio dovrei accederci mediante la variabile m_bmpBitmap che a sua
volta accede a hBitmap.
Il problema e che devo lavorare sui pixel non so come accedervi.
Comunque sia non riesco a visualizzarlo,, qualcuno sa farlo?
Grazie
Gianluca

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
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c++
Titolo: [OT] Parsing di un file XML solo una volta

Ciao a tutti,
ho scritto un programma che legge dei dati di configurazione da un file
XML per inizializzare alcuni dati di un DB.
Vorrei, però, che se rieseguo il programma il file XML non venga più
letto.
Ho iniziato l'analisi del problema, e le soluzioni trovate mi fanno
tutte un po' schifo, tipo flag su file.
La cosa migliore sarebbe una funzione template "once" applicata al
parser XML, ma resta il problema del dove memorizzare l'informazione che
mi indica che il file è stato già letto.
Altre soluzioni ?
Grazie, Max

 ha scritto nel messaggio
news:3C4D9E7E...@smarten.com...

Se stai usando VC++ è meglio che ti rivolgi su: it.comp.programmare.win32

 wrote in message
news:3C4D9E7E...@smarten.com...

La mia soluzione, usata in un progetto, fa schifo ma funziona 
per capire che un file lo già letto cambia l'attributo io lo settavo in
sola lettura
per capirlo 
SEMPLICE,FUNZIONANTE,MA SECONDO ME FA SCHIFO....
CIAO
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c++
Titolo: attributi di classe

Come posso definire attributi di classe alla java in c++?
Intendo attributi che hanno lo stesso valore per tutte le istanze presenti
della classe. Allocati per classe, non per istanza, e se un'istanza modifica
il valore di uno di questi attributi il valore è cambiato guardandolo da
qualsiasi istanza.
Mi sono spiegato? Speriamo
Grazie



 qualsiasi istanza.
Quello che cerchi sono membri (o metodi al limite) statici:
class Foo {
        private:
                static int bar;
        public:
                void print() { std::cout << bar << std::endl; };
                void set(int a) { bar = a; };
};
/* [1] */
int Foo::bar = 123;
int main() {
        Foo f1, f2;
        f1.print();
        f2.set(666);
        f1.print();
}
Nota che  lo storage per  la variabile 'bar' deve  essere esplicitamente
allocato ([1]). Puoi  anche definire  dei metodi statici,  tenendo conto
che:
*) al metodo statico (ovviamente) non viene passato il puntatore this
*) un metodo statico puo` accedere solo alle eventuali variabili
   statiche della classe
*) un metodo statico puo` richiamare solo metodi statici della classe
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
K.R.O.N.O.S
Kinetic Replicant Optimized for Nocturnal Observation and Sabotage

Come posso definire attributi di classe alla java in c++?
Intendo attributi che hanno lo stesso valore per tutte le istanze presenti
della classe. Allocati per classe, non per istanza, e se un'istanza modifica
il valore di uno di questi attributi il valore è cambiato guardandolo da
qualsiasi istanza.


 writes:

Non tanto bene.  Stai parlando di metodi e dati statici della classe?
Ah, hai il virus mando-tre-copie-della-stessa-domanda.  Noiosissimo
per chi deve leggere.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

Ah, hai il virus mando-tre-copie-della-stessa-domanda.
Sě, si chiama Outlook Express.
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c++
Titolo: Passaggio di funzione per riferimento

Ho un problema con il passaggio di funzione per riferimento: ho creato un
oggetto contenitore di tipo template che, tra le altre cose, deve stampare
su video gli oggetti che contiene. Per fare ciò mantenendo una certa
generalità ho pensato di passare la funzione di stampa per riferimento, ad
es:
template <class T> class Container
{
 protected:
 .........
  void         (*displayItem) (Point, T*, int, int);
 .............
 public:
                    Container (........., void (*) (Point, T*, int, int),
.......);
...................
};
.........................
template <class T>
Container <T>::Container (........., void (*f) (Point, T*, int, int),
.......)
{.........
 displayItem = f;
 ............
}
..............
C'è però un problema quando esegue tale funzione, ad es. definendo la
funzione di stampa per l'oggetto Number (e quindi creando un'istanza della
classe Container <Number>):
void display (Point p, Number *e, int i, int s)
{char a [20];
 int c;
 c = (i == s) ? COLOR1 : COLOR2;
 sprintf (a, "Number at %2d: (%2d %2d)", i, e->x, e->y);
 displayString (p, c, a);
}
Questa funzione sceglie il colore con cui stampare (per evidenziare
l'oggetto corrente), dopodiché crea una stringa e la stampa, utilizzando la
mia funzione displayString, partendo dalla locazione p. Il fatto è che il
colore con cui stampa è sbagliato. Se io invece scrivo:
void display (Point p, Number *e, int i, int s)
{char a [20];
 int *c;
 c = new int ((i == s) ? COLOR1 : COLOR2);
 sprintf (a, "Number at %2d: (%2d %2d)", i, e->x, e->y);
 displayString (p, *c, a);
 delete (c);
}
va tutto bene. Perché? Se qualcuno volesse aiutarmi... Ciao
                                                Marchisio Stefano

Ho provato a modificare la funzione display in questo modo:
void display (Point p, Number *e, int i, int s)
{char a [20];
 int c = 0;  /* inizializzazione a 0 che prima non c'era */
 c = (i == s) ? COLOR1 : COLOR2;
 sprintf (a, "Number at %2d: (%2d %2d)", i, e->x, e->y);
 displayString (p, c, a);
}
e tutto funziona. Come mai inizializzando c in quel punto va bene? Boh! Se
qualcuno ha una spiegazione.... Ciao
                                                Marchisio Stefano

 }
"Number at ??: (??,??)" sono 21 caratteri, con lo '\0' finale fanno 22.
Max


Priorità degli operatori.
Saluti.
Newsgroup: it.comp.lang.c++
Titolo: Informazioni sulla scheda grafica (640x480x16)

Ciao sono Marco,
Sto cercando delle specifiche che mi permettano di utilizzare la scheda
grafica VGA nella modalità 640x480x16 con un programma scritto in C o
assembler per il DOS in finestra di W95.
Ho provato con INT 10-0, che va bene per cambiare la modalità video, ma
per quanto riguarda il colorare i pixel è troppo lento.
Ho trovato un programma che utilizza direttamente la porta:
*****
pointh(x, y, colore)      /* point drawing function */
int x, y;
unsigned char colore;
{
char far *farptr;
unsigned char c = colore & 0x0F;
unsigned char mask = 0x80;
unsigned char exist_color;
farptr=(char far *)0xA0000000; /* set ptr to EGA mem */
exist_color = *(farptr + y*80 +x/8 );/*read existing color to EGAreg*/
mask>>=x%8;
outp(0x3C4,2); /*set color to write */
outp(0x3C5,c); /*in map mask register */
outp(0x3C7,8);  /*select bit mask reg */
outp(0x3CF,mask); /*appropriate bits only change*/
*(farptr + y*80 + x/8) = 0xFF; /*write to EGA */
outp(0x3CE,8); /*select bit mask reg */
outp(0x3CF,0xFF); /*restore all bits writeable */
}
*****
ma sembra che quando colora un pixel ne faccia un XOR con il precedente
colore.
Non conosco le specifiche delle porte indirizzate da outp, e non ho
trovato documentazione con qualche esempio in modo da capire come
indirizzare tali porte.
In conclusione se c'è qualche persona che conosce un metodo migliore
oppure mi possa indicare, indirizzi, documenti, esempi, o qualsiasi cosa
utile.
Grazie.
E` gradita risposta via E-mail in quanto non ricevo it.comp.lang.c.
Saluti a Tutti MArco.
--
Automatic posted from 
pop.torino.enel.it
 [194.244.51.99]
via Mailgate Server - 
http://www.mailgate.org





Grazie.
E` gradita risposta via E-mail in quanto non ricevo it.comp.lang.c / c++
Saluti a Tutti Marco.


per quanto riguarda il colorare i pixel è troppo lento.
Se la cosa ti interessa, o se interessa a qualsiasi altra persona di questo
ng, ho una libreria - scritta in C - (non da me) ampiamente documentata che
permette di manipolare molto velocemente i fantomatici pixel. Io l'ho
trovata molto efficacie e sicuramente è più comoda che usare direttamente
l'assembler. Tuttavia, sebbene sia in grado di andare dalla 320x200 alla
1280x1024, può lavorare solo a 256 colori, non di più... comunque tu avevi
parlato di 16, quindi dovrebbe andarti bene! Incluse nella libreria vi sono
anche altre funzioni, per l'uso di joystick e mouse, oltre a due o tre
routine grafiche (abbastanza primitive) in grado di disegnare oggetti
tridimensionali.
Se a qualcuno interessa, il mio indirizzo è 
thet...@tin.it