mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Multi-threading and BDE problem

I have a problem with the multi-threading programming with BDE using CB5
Enterprise under W2K pro.
My application must create N (1 - 1000) threads. Each thread asks to
execute a SQL statement to a SQL server (I'm using InterBase v5.6, than
Oracle 8i). Until 10 threads the program works correctly.
With more threads I have an error:
Project Project1.exe raised exception class EDBEngineError with message
'Insufficient memory for this operation. Alias SrvDatiDB'.
I'm surprised, having 256 MBs of Ram
In the main form with a pushbutton the program executes this code
for(int I = 1; I <= 10; I++)
{
TClientThread* ClientThread = new TClientThread(true, I);
ClientThread->OnTerminate = ThreadDone;
ClientThread->Resume();
}
This is the thread
class TClientThread : public TThread
{
private:
int iID;
TDM* FDataModule;
void __fastcall ApertaSessione(void);
void __fastcall ApertoDatabase(void);
void __fastcall ApertaQuery(void);
protected:
void __fastcall Execute();
public:
__fastcall TClientThread(bool CreateSuspended, int iNewID);
__fastcall ~TClientThread(void);
};
and the code
__fastcall TClientThread::TClientThread(bool CreateSuspended, int
iNewID)
: TThread(CreateSuspended)
{
iID = iNewID; // my ID
Priority = tpNormal;
FreeOnTerminate = true;
FDataModule = new TDM(NULL); // I use a datamodule with TSession,
TDatabase
e Tquery objects
MainFrm->Memo1->Lines->Add(IntToStr(iID) + " - " +
FDataModule->Ses->SessionName);
}
__fastcall TClientThread::~TClientThread(void)
{
delete FDataModule;
}
void __fastcall TClientThread::Execute()
{
FDataModule->Ses->Active = true;
if(FDataModule->Ses->Active)
{
Synchronize(ApertaSessione); // Write a string in MainFrm->Memo1
FDataModule->DB->Connected = true;
if(FDataModule->DB->Connected)
{
Synchronize(ApertoDatabase); // Write a string in MainFrm->Memo1
FDataModule->Qry->ExecSQL(); // SQL statement is set in datamodule
Synchronize(ApertaQuery); // Write a string in MainFrm->Memo1
if(FDataModule->Qry->Act
iv
e)
FDataModule->Qry->Close();
FDataModule->DB->Connected = false;
}
FDataModule->Ses->Active = false;
}
}
In the TSession object the AutoSessionName property is true.
Where is the problem? How can I resolve?
Many thanks
Andrea Böhm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Böhm (Andrea Boehm)
consultant programmer, and freelance journalist
Trieste - Italy
abo...@iol.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Andrea, in this newsgroup you are OT, as it is meant only to discuss
platform independent aspects of C++. Given your mastery of english I
suggest that you post your message on the appropriate group among those
available from Borland's server, 
forums.borland.com
.
Best regards,
Nicola Musatti

Chiedo scusa per il messaggio (che tra l'altro ho postato anche sul
newsgroup Borland), ma visto che speravo in una risposta rapida
ho pensato di replicarlo anche su un forum italiano, e questo è l'unico
che ho visto.
Di nuovo porgo le mie scuse.
Andrea Böhm

Newsgroup: it.comp.lang.c++
Titolo: Socket

Sono un neofita di Linux e sto cercando un software in C ( possibilmente
opensource ) che si metta in ascolto su una porta di una socket e stampi i
messaggi che arrivano su file. Sapete dove posso trovarlo ?

 messaggi che arrivano su file. Sapete dove posso trovarlo ?
Difficilmente su un newsgroup che si occupa di C++, per di piu'
indipendentemente dalla piattaforma.
Ciao,
Nicola

Vai su it.comp.os.linux.development

Newsgroup: it.comp.lang.c++
Titolo: iostream e fcntl

Avrei la necessita` di utlizzare fcntl.
Questa funzione vuole come parametro il descrittore del file a cui si fa
riferimento.
La cosa non da` fastidio finche' si programma in C, in quanto ad ogni file
corrisponde il suo bel descrittore...
E se io volessi usare fcntl e fstream per aprire/leggere/scrivere il mio
file?
1) Esiste qualcosa di equivalente a fcntl per la fstream?
2) La fstream memorizza da qualche parte il descrittore del file ad essa
relativo?
3) Perche' trovo sempre il modo di complicarmi l'esistenza?
Saluti,
Marco Pastrello
pa...@dei.unipd.it
marco.p...@pd.nettuno.it

relativo?
"Dettaglio di implementazione" -- ogni implementazione di
iostream puo` regolarsi in merito come meglio crede.  Non
c'e`, comunque, un modo standard e portatile di accedere
a questa informazione.
Alex

 a questa informazione.
Umpf.
Grazie,
Marco Pastrello
pa...@dei.unipd.it
marco.p...@pd.nettuno.it

processo tenta di accedere ad un dato file.
Ah, OK, una funzione non portatile.  Beh, allora, visto che ti
interessa lavorare solo sotto uno specifico compilatore, puoi
studiare la loro specifica libreria -- tanto ci sei legato comunque
per la fcntl.  Guardando i sorgenti di fstream.h nel directory di
include del g++, si vede subito che ogni fstream eredita
pubblicamente da fstreambase, e quest'ultima classe ha
una funzione membro filedesc() che ritorna il fd (numeretto
di file descriptor Unix -- o simulazione di Unix, su altri SO).
In altre implementazioni di fstream che mantengano un fd,
lo stesso accessore si chiama fd().
Alex

 lo stesso accessore si chiama fd().
Grazie!
Ti diro` la verita`. C'avevo provato a guardare i .h... Ma mi ero ben presto
perso.
Ancora grazie,
Marco Pastrello
pa...@dei.unipd.it
marco.p...@pd.nettuno.it

> lo stesso accessore si chiama fd().
Se puo` servire a qualcuno `filedesc()' sembra essere una funzione
obsoleta.
Al suo posto c'e` il metodo `filebuf* rdbuf()'.
A sua volta la la classe filebuf offre un `int fd() const' che fa al caso
mio.
In pratica al posto di .filedes() si scrive .rdbuf()->fd(). 

Newsgroup: it.comp.lang.c++
Titolo: Novellino

Dovrei creare un file principale (con estensione .h). In questo file,
dichiarare un gruppo di funzioni variando la lista degli argomenti e i
valori di ritorno fra i seguenti: void, char, iint e float.Ora creare un
file .cpp che include il nostro file header e creare definizioni per tutte
queste funzioni. Ogni definizione dovrebbe semplicemente stampare il nome
della funzione, la lista degli argomenti, il tipo di ritorno cosě si sa che
č stata chiamata. Creare un secondo file .cpp che include il file header e
definisce in main(), contenente chiamate a tutte le nostre funzioni.
Su questo esercizio ho una serie di dubbi, per poter includere il file edere
in un file .cpp devo salvare il file header nella stessa cartella in cui
salvo il file .cpp?
Quando creo il secondo file .cpp come faccio a  chiamare tutte le funzioni?
Grazie a tutti.

 Quando creo il secondo file .cpp come faccio a  chiamare tutte le
funzioni?
Ad esempio se hai nel file "header.h":
void foo(int);
supponendo che la definizione di questa funzione sia nel file
"functions.cpp", allora nel file "main.cpp" devi fare:
#include "header.h"
int main() {
    foo(10);
}
occhio però che quando compili devi linkare tra di loro functions.cpp e
main.cpp.
Ciao

 Ciao
Come faccio a linkare i file *.cpp?

 Come faccio a linkare i file *.cpp?
Dipende dal compilatore che usi; in generale per qualunque compilatore (da
riga di comando) si danno in pasto i file cpp passandoli direttamente da
linea di comando, ad esempio per il gcc:
gcc -c main.cpp funcs.cpp -o main
crea l'eseguibile main linkando insieme i due file. Se usi un IDE come
Dev-c++ basta includere i due file nello stesso progetto.
Ciao

 gcc -c main.cpp funcs.cpp -o main
Oops, la fretta:
g++ main.cpp funcs.cpp -o main
cosě dovrebbe andare
Ciao

Newsgroup: it.comp.lang.c++
Titolo: AIUTOOOOO!!! ^^

Scusate la pateticità^^
ma mi porto dietro sempre questo atroce dubbio su quale ambiente di sviluppo
convenga utilizzare. Naturalmente parlo per C e C++, un ambiente con un
debugger
ecc... ecc...
Ho intenzione per il momento di partire sotto windows ma poi in futuro nn so
ma i C e C++ non sono usempre loro per tutti?
Voi che compilatori o debugger utilizzate?
Datemi un consiglio, possibilmente freeware
Tnx
REC^^

Ti consiglio DEV-C++ è free e completo.
http://www.bloodshed.net/
Il compilatore che usa è mingw.
ciao
Newsgroup: it.comp.lang.c++
Titolo: passaggio parametri

salve ho un dibbio sul significato di * e di & quando si passano i
parametri in c++.
 ad esempio in questa funzione:
CTick& CTick::operator=(const CTick& tick)
{
	m_nTick = tick.m_nTick;
	return *this;
}
signifaca che io gli passo un indirizzo di un CTick costante o un
puntatore a un CTick??
se nel prototipo avessi messo * dentro la parentesi invece che & era la
stessa cosa? ovvero se dichiaro un agenerica funzione del tipo:
procedura(int* a); e come scrivere : procedura(int& a);?? e se è diverso
in cosa??
grazie dellattenzione.
***************************************
messaggio inviato tramite HostSearch.it
---------------------------------------
---> 
http://www.hostsearch.it/newsgroup
***************************************

 e se è diverso in cosa??
Nel primo caso passi un puntatore a costante e quindi nella
definizione di operator= avresti dovuto fare:
m_nTick = *tick.m_nTick;
(oppure m_nTick = tick->m_nTick;)
Nel secondo caso passi un reference, ovvero crei un alias
dell'oggetto che passi, che quindi puoi manipolare senza
dereferenziarlo, facendo normalmente
m_nTick = tick.m_nTick;
ciao
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: SDK classi di sviluppo C++ in Linux

Ho bisogno di sapere se esistono e dove reperire SDK o librerie C++ per la
programmazione ad oggetti in ambiente Linux.
So che esistono dei Software Development Kit per lo sviluppo in ambiente
grafico. Per ora ho bisogno di SDK o librerie per lavorare in shell (creazione
di socket, serializzazione di classi e quant'altro), più che altro per
sviluppare demoni.
 
Dove posso reperire valanghe di documentazione a riguardo?
 
Grazie in anticipo.
Ciao
 
-- 
Caronte
-- 
Inviato da 
Newsgate.Localinfo.IT
 Web Service
http://newsgate.localinfo.it

 Dove posso reperire valanghe di documentazione a riguardo?
vai su 
freshmeat.net
 e scegli tra le varie librerie


kernel.org
apache.org
 (il demone httpd)
una distro di linux ti scarichi i sorci
sourceforge.net

Newsgroup: it.comp.lang.c++
Titolo: Dove trovo info sui Vector?

Sto iniziando a programmare in ambiente windows (invece che DOS) e
arrivo dal C fatto a sQuola.
Ho scoperto che ci sono tantissime nuove feature nel C++ e classi
precodate.
Tipo ho scoperto le string, che sono utilissime :-)
Adesso stavo cercando un manuale o qualcosa che mi spiegasse i vector,
ma non riesco a trovare niente (o quasi).
Insomma mi sapete reindirizzare verso una guida che tratti questa
classe?
Inoltre secondo voi quali sono le classi fondamentali, magari nuove
introdotte dal C++, che un programmatore di basso livello (non "a"
basso livello....."di" basso livello perchè non sono un professionista
:-P) dovrebbe conoscere? Tipo come ho detto: string, vector, magari
nuovi modi di fare casting, nuove funzioni fondamentali...
Insomma mi fate un'infarinatura di ciò che mi manca?
Grazie mille :-)
Pictor

 Grazie mille :-)
Non mi stanchero' mai di consigliare l'ottimo "Thinking in C++" di Bruce 
Eckel, ne e' disponibile il download gratuito: cerca su Internet.
...dopo aver letto quel libro torna a fare domande qui ;-)
[scherzo..! :)]
Ciao, e prego
Dan

Dan

 L'ho scaricato.... ma è in inglese... :-(
Si' ma dai l'inglese tecnico non e' difficile...e poi credo che per un 
programmatore saper leggere (non dico scrivere..., ma almeno leggere) un 
documento tecnico in inglese (che non e' un quotidiano con frasi 
idiomatiche, etc.) sia davvero molto importante.
Non so se qualcuno ha tradotto il TIC++ in italiano...
In ogni caso, credo che se cerchi un po' con Google informazioni su 
vector ne escono eccome!
Ciao
Dan

Dan
Ciao
Pictor :-)

 ha scritto nel messaggio 
news:vn5kp0dr50730m612...@4ax.com...

Newsgroup: it.comp.lang.c++
Titolo: Ricerca uguaglianza

 Grazie in anticipo a chi vorrà aiutarmi ;-)
L'algoritmo "a forza bruta" è questo:
for x in range(1,1000):
    for y in range(1,1000):
        for z in range(1,1000):
            if(x**2 + y**2 == z**2):
                print 'x: ',x
                print 'y: ',y
                print 'z: ',z
                print x**2,' + ',y**2,' == ',z**2,'\n'
per tradurlo in C++ ti basta
- scrivere i for e l'if con la sintassi C++
- utilizzare la funzione std::pow che sta in <cmath> per fare
l'elevamento a potenza (ovviamente puoi scrivere anche x*x,
invece che utilizzare la pow :-) )
- usare la std::printf che trovi in <cstdio> oppure gli stream
che trovi in <iostream> per fare la print.
Facci sapere i risultati :-))
-- 
Gerolamo
www.overweb.it

                print x**2,' + ',y**2,' == ',z**2,'\n'
[OT]
Due idee:
- perche' contare y da 1 a 1000 e non da x a 1000 ?
  in fondo contando anche x a partire da 1 trovi
  solo delle soluzioni ripetute (con y<x)...
- perche' fare un loop su z e invece non fare
  qualcosa come z = int(sqrt(x*x+y*y)+0.5) e poi
  verificare se z<=1000 e se z*z e' esattamente x*x+y*y ?
Con queste due varianti (che a occhio dovrebbero
velocizzare il tuo esempio di circa duemila volte)
un programma PERL (ovvero interpretato) sul mio
PC ci mette meno di un secondo a trovare tutte
le soluzioni...
Andrea

> mx;
        ternePitagoriche T(N,x0,y0,mx);
        long t=T.stampa(cout);
        cout << "\nTrovate " << t << " terne.\n";
        return 0;
}

   verificare se z<=1000 e se z*z e' esattamente x*x+y*y ?
E' vero... :((( Perché ho fatto il loop su z non lo so... sono stato un
pollo!
E' inutile... non ci si può più fidare degli estetisti... :)))
Ciao!

 le soluzioni...
In python, sul PIII 550 che ho adesso sotto mano,
ci mette 5-6 secondi.
In c++ un po' meno di 1 secondo.
ciao
-- 
Gerolamo
www.overweb.it

In c++ un po' meno di 1 secondo.
Io ho un computer piu' veloce... la versione C++
compilata con g++ impiega quasi sempre 16ms (pero'
la granularita' del timer clock() sembra essere
proprio 16ms visto che ogni tanto il tempo
misteriosamente diventa il doppio cioe' 32ms).
La versione con tre loop impega 2.45 secondi.
Andrea

 soddisfino questa uguaglianza, come posso fare?
Potresti usare la formula per gli x dispari che lo stesso Pitagora ha
fornito:
n=0,1,..., inf. x=2n+1 y=2n^2+2n z=y+1
e la formula per gli y pari data da Platone:
y=2n x=n^2-1 z=n^2+1
e ti fermi con n quando vuoi tu.
Mi sembrava che ci fosse la formulina... ma non la trovavo piů...
Paolo.

 misteriosamente diventa il doppio cioe' 32ms).
uh... ci ho riprovato con solo io loggato su quella macchina
e (ooops... questo fa la differenza) togliendo l'output su
terminale:
geo@toy:~/programmazione/c++$ time ./quadrati
real    0m0.158s
user    0m0.160s
sys     0m0.000s
Che in effetti mi pare più realistico :-)
-- 
Gerolamo


Valgono anche le terne tipo:
(X, 0, X)
oppure
(X, 0, -X) ???
Newsgroup: it.comp.lang.c++
Titolo: codice C ...da convertire in C++

Ciao a tutti,
il compito sembra arduo...ma tentare non nuoce.
In un certo processo ho un pezzo di codice del tipo:
Read(a); //leggo un messaggio da socket, o anche da coda
switch(a.identificatore_comando) {
case 1:
.......//elaboro il comando 1
case 2:
.......//elaboro il comando 2
default: //errore
    break;
}
questo e' un modo tipico di ricevere/elaborare comandi, proprio dei "vecchi"
programmi C.
Il problema e' che se domani creo un nuovo comando (3), devo intervenire
sulla funzione
sopra scritta. E se esistono piu' blocchi switch-case di quel tipo e mi
dimentico di aggiornarne
uno? In questo caso: MANUTENIBILITA' = 0.
Una possibilita' sarebbe: creare un oggetto comando, con un metodo virtuale
virtual comando::elabora(),  e poi derivare gli specifici. Questo pero'
funzionerebbe se, per es., avessimo una lista di comandi e chiamiamo, di
volta in volta, la
elabora specifica.
Ma se il comando mi arriva da socket (in generale da  altra macchina) o coda
(in generale da altro processo)?
Grazie dei suggerimenti
--
Tiberio Grasso


Non so esattamente cosa intendi per 'comando'. Forse puoi definire una classe
base Comando con dei metodi virtuali e costruire un'istanza della classe derivata
nella Read.
Esempio:
class Comando
{
    /* eventuali dati e metodi
       comuni a tutti i comandi */
   public:
    Comando()          {}
    virtual ~Comando() {}
    virtual void Elabora() = 0;	
};
da questa classe derivano i comandi veri e propri,
...
Comando * read(int s)
{
    /*
        legge da s e istanzia un oggetto
	della opportuna classe derivata 
	comportandosi come un 'factory method'
    */
}
...
Comando *c = read(s);
c->Elabora();
delete c;
Questa soluzione sposta lo switch() solo nel metodo read() e ha senso 
se oltre al metodo Elabora() la classe comando ha altri metodi virtuali.
Con tecniche piu' sofisticate e' possibile eliminare lo switch anche 
dal metodo read con la possiiblita' di aggiungere nuovi comandi senza
modificare nulla.
*Fabio*
-- 
Insufficient facts always invite danger.
		-- Spock, "Space Seed", stardate 3141.9

Newsgroup: it.comp.lang.c++
Titolo: Problemi allocazione memoria Win95?

Saluti.
Ho realizzato un'applicazione costituita da una GUI Visual Basic la
quale lancia un programma batch scritto in Visual C.
Il programma C esegue delle elaborazioni piuttosto pesanti dopo aver
ricevuto l'input dalla linea di comando.
Puo', quindi, anche essere lanciato manualmente da una finestra DOS
(oltre che dalla GUI).
Purtroppo mi sto scontrando con un problema che non riesco a spiegare.
Il programma C, lanciato da DOS, funziona perfettamente. Alloca la sua
memoria, effettua le elaborazioni e poi termina.
Lo stesso programma, lanciato dalla GUI con lo stesso input, a volte
cade. Ho tracciato l'esecuzione, e sembra che dopo aver allocato
memoria, appena tenta di scrivervi ci sia una violazione della memoria.
Questo, tuttavia, non accade sempre; inoltre accade solo su un paio di
PC che, apparentemente, sono normalmente configurati.
Qualcuno ha qualche idea?
Riccardo Gargioli
garg...@twinsoft.it

...

Newsgroup: it.comp.lang.c++
Titolo: Unresolved symbol: perché?

Ciao a tutti. Sto lavorando a un progettino stupido al punto che sono
partito copiando dal libro di Petzold il primo file in C: HELLOWIN e
poi avevo deciso di modificarlo. Prima di fare dei casotti, perň, ho
deciso di compilare e lanciare questo file cosě com'č e poi di passare
alle mie modifiche. Il problema č che, copiato parola per parola
perfettamente e senza errori il sorgente del libro, mi sono stati dati
2 errori LNK2001, ovvero:
unresolved external symbol __imp__PkaySoundA@12
unresolved external symbol _main
Chiaramente, ho incluso windows.h come era nel sorgente del libro.
Qualcuno ha qualche suggerimento? Se cominciamo con degli errori di
questo tipo in un file cosě cretino, vi saluto quando passo ad
applicazioni serie...
Grazie in anticipo.
Cordialmente,
Gianni Rondinini, programmer and designer at Pierre s.n.c.
Mailbox:
pie...@mail.asianet.it
Homepages:
http://www.geocities.com/SiliconValley/park/7666
http://www.angelfire.com/ky/GianniRondinini

unresolved external symbol _main
quello di solito esce quando si cerca di linkare una applicazione
windows come se fosse una applicazione di console. 
Il tipo di applicazione lo specifichi al momento della creazione 
di un nuovo workspace, ma si puo' anche cambiare andando a 
piazzare un /subsystem:windows nelle opzioni di link
L'altro errore dovrbbe riferirsi semplicemente ad una libreria
che non e' stata inclusa nel link, ma no saprei quale e' perche' 
non ho mai usato le librerie multimediali :)
--
Marco Danti
remove NOSPAM from my address if you want to reply directly to me; sorry.
Newsgroup: it.comp.lang.c++
Titolo: ripetizioni di storia...

Dunque il quesito che ho da porvi riguarda questa volta qualcosa di moolto
teorico, quasi umanistico. Non ho capito bene che differenza c'e' tra i
compilatori: Cygnus gcc; gcc; Djgpp, Cygnus egcs.
Tutto mi sembrava a posto finchč quando lavoravo su UNIX utilizzavo il cc o,
ancora meglio il gcc e sapevo che la versione per Win/Dos di Gcc fosse
Djgpp; ma ora che ho comprato il ciddě "the best of C++" Non ci ho capito
piu' nulla... tutti funzionano sotto dos... tutti sono porting di
qualcos'altro... Sapreste Aiutarmi?
Saluti.
Nathan!
P.s. Non voglio sapere se il tal compilatore con le tali opzioni compila il
tal codice e cosě via, ma solo avere una idea di cosa deriva da cosa o č
l'evoluzione di cosa.... OK?

qualcos'altro... Sapreste Aiutarmi?
Infatti, mi sono reso conto di aver buttato 20.000.
Dalla copertina mi pareva che ci fosse EGCS 1.1 per Linux,
ma era solo una illusione.
La versione di wxWindow proposta e` la 1.68, siamo ormai alla 2.
GTK con il wrapper per C++ niente ?
In due parole:
gcc: compilatore C di GNU
     Spesso si sottindende anche il compilatore C++ g++
DJGPP: porting per DOS di gcc/g++
Cygwin32: porting per Win32 di gcc/g++
          con emulazione, se richiesto, di POSIX
Mingw32: porting per Win32 di gcc/g++ senza POSIX
Per quel che so io sia Cygwin32 che Mingw32 distribuiscono
ora EGCS, DJGPP il "vecchio" gcc 2.81 (mi pare).
Di Mingw32 ne esistono 2 versioni:
una curata da Jan-Jaap van der Hejden
ed una da Mumit Khan (da preferire , IMHO)
gcc sotto Linux dovrebbe venir sostituito nel tempo da EGCS
(Experimental Gnu Compiler System), il cui
sviluppo viene gestito da Cygnus, per quel che ne so.
Quindi, tirando le somme, sul CD in questione
dovrebbe esserci:
-Cygwin32 gcc (versione compilatore C++ 2.81)
-Cygwin32 EGCS (versione compilatore C++ 2.90 o superiore)
-DJGPP (versione compilatore C++ 2.81)
Niente EGCS per Linux, niente l'ottimo porting Mingw32
di Mumit Khan.
IMHO, se vuoi un buon compilatore C++ per Win32 free
prendi il porting di Mumit Khan dalla rete!
Saluti!
-- 
Roberto Gerola
Email: 
roge...@tin.it
WWW: 
http://space.tin.it/computer/rgerola

 compilatori: Cygnus gcc; gcc; Djgpp, Cygnus egcs.
Il Cygnus GCC č il porting per WIN32 del GCC, il GCC č il classico
compilatore della GNU, il DJGPP č il porting per DOS di Delorie del GCC
e, per finire, il Cygnus EGCS č il porting per WIN32 del nuovo EGCS che,
a sua volta, č il successore del GCC.
EMG
Newsgroup: it.comp.lang.c++
Titolo: GNU C++: make di allegro

Dispongo di un PC 486 con 8 mb di RAM e Windows 95 installato.
Quando cerco di eseguire il make della libreria di allegro ricevo quanto
segue:
D:\djgpp\allegro>make
Compiling Allegro. Please wait...
gcc -I. -Isrc -Isrc/djgpp -Iobj/djgpp -Wall -W -Werror -Wno-unused -m486
-O3 -ff
ast-math -fomit-frame-pointer -o obj/djgpp/cblend15.o -c src/cblend15.c
src/cblend15.c: In function `blend15_113':
src/cblend15.c:84: virtual memory exhausted
make.exe: *** [obj/djgpp/cblend15.o] Error 1
Come posso far si' che la compilazione venga effettuata ?
					Vi ringrazio anticipatamente della
  			  			Vostra sollecitudine.

 Come posso far si' che la compilazione venga effettuata ?
il problema e che hai esaurito la memoria. prova ad incrementarla nelle
proprieta` della finestra DOS. metti il massimo in "memoria DPMI".
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/

Newsgroup: it.comp.lang.c++
Titolo: Istruzione per eseguire un programma esterno

Qualcuno per favore mi può di re qual'è in c++ il comando per far partire un
programma esterno??
ho provato con exec e con eval ,ma non me li riconosce
Ho trovato da qualche parte : runtime rt = rt.exec(.....) ???
Lavoro in Linux e forse non ho installato le giuste librerie....... quindi
se mi dite il comando ditemi anche in che libreria è presente
--
Saluti
  Marco
               _/^\_
            (@\  /@)
----o00-(__°°_)
              '''^\v/^'--00o-----
 
www.rettili.net
 
www.cibovivo.com
  --------------------------

 se mi dite il comando ditemi anche in che libreria è presente
prova a includere la libreria 'graphics.h' del Laforgia
ciao :: xaero

> prova a includere ...
includi questo invece nei tuoi :))
while (1){
 cout << "Come sono spiritoso non me ne perdo una" << endl ;
}

Newsgroup: it.comp.lang.c++
Titolo: Aiutiamo Carlo

Ragazzi mi scuso per la natura poco tecnica del mio intervento...
volevo soltanto sensibilizzarvi sulla vicenda paradossale che sta
vivendo il nostro collega e concittadino Carlo Parlanti, guru VB e ODBC
da più di un anno detenuto ingiustamente in Germania e Stati Uniti
senza prove né processo.
Carlo e la sua famiglia stanno male nell'indifferenza totale delle
persone e dei governi: sono sicuro che vorrete saperne di più e far
sentire la vostra voce consultando il sito 
www.carloparlanti.it
.
Vi ringrazio in anticipo e mi scuso ancora per l'intrusione.
Pietro

> da più di un anno detenuto ingiustamente in Germania e Stati Uniti
Ubiquità carceraria?
-- 
Gerolamo 

I tuoi motivi sono nobili, ma sei fuori tema. Di cause altrettanto
nobili, purtroppo, ne esistono a bizzeffe; se arrivasse un messaggio
per ciascuna di esse il newsgroup verrebbe sommerso.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: bug in bitset?

Ho provato a compilare il seguente programma con il BCC 5.5:
#include <bitset>
#include <iostream.h>
typedef std::bitset<8> BYTE;
void const_test(const BYTE& b)
{
  cout << "b[1] = " << b[1] << '\n';
}
void test(BYTE& b)
{
  cout << "b[1] = " << b[1] << '\n';
}
int main()
{
  BYTE b(47);
  cout << "b = " << b << '\n';
  test(b);
  const_test(b);
}
Ottenendo un errore:
Error E2094 : 'operator+' not implemented in type 'BYTE' for arguments
of type 'int' in function const_test(const BYTE &)
Probabilmente è un (altro) bug della libreria della Rogue Wave, ma la cosa
che mi fa pensare è che nella dichiarazione della classe bitset compare solo:
     reference operator[](size_t);
mentre manca una funzione per la sola lettura:
     bool operator[](size_t) const;
(Almeno da quanto ho letto sul libro dello Stroustrup e sull'ultimo Draft dello standard)
Che cosa ne pensate?
Manlio Perillo

Mi sa che hai centrato il problema. Se non hai problemi con l'inglese,
ti suggerisco di postare il tuo problema anche su
borland.public.cppbuilder.language, che trovi sul server
forums.borland.com
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: solo nel .h ????

Perchč questo compila solo nel .h di una classe
template<class type>string insertBase(type *p){
se lo metto nell .cpp mi da errore su string std ecc.

 se lo metto nell .cpp mi da errore su string std ecc.
Cosi' come l'hai scritto non compila da nessuna parte. Posta un
esempio corto, ma completo.
Ciao,
Nicola

"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio 
news:a327cf48.04113...@posting.google.com...

immagine che questa sia dentro una classe punto ....
//. h
class pippo {
public:
    pippo() {}
    ~pippo() {}

};

 };
Neanche questo compila - non hai manco incluso <string>.
Riproviamo, l'algoritmo per generare il codice da postare qui e' semplice:
1. prendi il codice
2. togli le cose inutili
3. vedi se da i medesimi errori di compilazione
4. se il codice e' minimale, postalo, altrimenti ripeti da 1
-- 
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/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 ha scritto nel messaggio 
news:cohnni$e8j$2...@le1.cs.unibo.it...

hehe nn ho il codice ora... cmq è semplice una classe vuota con un metodo 
template che ritorna una string
ed ha come parametro un puntatore di tipo type (il parametro del template)
:) 

 };
Cosi' compila.
Ciao,
Nicola

Si cos' compila
ma se metti la funzione nel .cpp no.
...prova ...
"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio
news:a327cf48.04113...@posting.google.com...


 ...prova ...
se vuoi mettere l'implementazione nel cpp devi usare export.
export è attualmente implementato, che io sappia, in un solo compilatore 
  ( comeau ).
lascia tutto nell'header e amen.
-- 
sbi

 ha scritto nel messaggio
news:C04rd.20250$C94....@tornado.fastwebnet.it...

Ho letto su export ma non sapevo servisse a quello....
qui è tutta la il problema...
Newsgroup: it.comp.lang.c++
Titolo: pure virtual method called

Ciao,
capita a volte che durante l'esecuzione di miei programmi (con qualche bug,
direi) compilati col gcc venga stampato l'errore "pure virtual method
called".
Ora, io mi chiedo, al di là del fatto che il programma sia sbagliato, ma
come cavolo è possibile che venga chiamato un metodo virtuale puro? Il C++ è
staticamente tipato, il *compilatore* prevede che ogni metodo che viene
chiamato abbia un'implementazione, perchè non possono esistere oggetti
istanze di classi non completamente definite.
E allora?
GRAZIE
Daniele.



La tipica situazione in cui si produce tale errore è quando una funzione
virtuale pura viene invocata durante l'esecuzione di un costruttore base.
Ora, se un costruttore cerca di invocare direttamente un metodo virtuale
puro,
 class B  {
    public:
        B() { f();  }
        virtual void f() = 0;
 };
il g++ se ne accorge e dice:
  abstract virtual `void B::f()' called from constructor    
Ci sono casi in cui però il compilatore non può diagnosticare il problema
in fase di compilazione. Considera questo:
 class B;
 void g(B* p ); 
 class B  {
    public:
        B() { g(this);  }  // <---
        virtual void f() = 0;
 };
 void g(B* p ) { p->f(); }
 class D : public B {
    public:
        void f() {}
 };
 int main() {   D d;  }
Invocare anche indirettamente un metodo virtuale puro nel costruttore di
una classe base produce "undefined behaviour". Che questo si manifesti o
meno in forma di messaggio d'errore dipende dal compilatore. Credo, ad
esempio, ma non ho ancora verificato, che il codice sopra venga compilato
ed eseguito senza errori visibili con MSVC++. Con la mia versione del g++
produce invece il messaggio d'errore in questione.
Max

 Ho detto una ca##ata?
La ridefinizione di un metodo virtuale puro deve essere effetuata sempre a
prescindere se il metodo venga invocato o meno.
In questo caso in fase di link non avrebbe potuto creare la virtual table e
avrebbe dato errore.
Ivan Molella

Newsgroup: it.comp.lang.c++
Titolo: thread, processi... o che altro?

Stavo pensando di sviluppare un'applicazione server (demone) che ha il
compito di controllare un certo numero di modem (gsm e non) con diverse
funzioni.
Ad esempio l'amministratore puo' configurare il sistema in modo che questo
"servizio" comandi 2 modem GSM in modalità ricezione sms. La funzione per il
contollo del modem è identica, dovrà aspettare i messaggi sms, e passarli al
"processo" principale, che li elabora e li salva da qualche parte.
Come mi consigliate di sviluppare la struttura? THREAD o PROCESSI?
E per lo scambio di dati tra il processo principale e quello figlio? Memoria
condivisa? O che altro è più adatto?
Grazie,
Marko

 ha scritto nel messaggio
news:ju3G9.40136$3l.11...@twister1.libero.it...

Dipende dal sistema operativo che intendi utilizzare.

 ha scritto nel messaggio
news:%moG9.44950$2B1.1...@twister2.libero.it...


 su Linux, con Linux, per Linux
chiedi su it.comp.os.linux.development
qui sei OT
--
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: exe che restituisce una stringa

Ciao... sto cercando di fare un programma che funzioni cosě:
    l'utente sta girando tra le pagine di un sito, che si linkano fra loro
tramite un exe. Nel senso che la "pagina1.html" linka a "mioprogramma
pagina2.html" e mioprogramma.exe apre la "pagina2.html".
    Ora, avevo pensato a due sistemi:
1) mioprogramma.exe RESTITUISCE il testo della pagina... come una pagina asp
(ah, purtroppo non posso usare asp...). Ma non ho proprio idea di come fare.
Navigando ho visto molti siti (x es. 
www.chl.it
) che "chiedono" le pagine ad
un exe server side che ne restituisce il testo al browser, ma non ho proprio
idea su come realizzarli.
2) mioprogramma.exe LANCIA la pagina su Internet Explorer e gliela fa
aprire. Ho provato con l'API WinExec, ma senza risultato,
perché non so come lanciare iexplorer.exe e lanciando "iexplorer.exe
pagina2.html" non funziona.
Come potrei fare? E' possibile utilizzare il primo metodo?
Grazie 1000,
Paolo

 Ciao... sto cercando di fare un programma che funzioni così:


 wrote in message 8jsfvg$j...@dante.italia.com...


 fare.
Se sei su Win32 e il browser e` IE5 si puo` fare tutto.
Ma chiedi su it.comp.programmare.win32, perche` it.comp.lang.c++
non c'entra proprio.  Li` saro` ben felice di aiutarti, se
cessa questo thread OT su questo gruppo.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Durata di un'operazione

Ho fatto un semplice programmino che lavora su file di testo ricevendo in
input il nome e il percorso di un tale file.
E' possibile trovare un modo per calcolare la durata dell'operazione in
secondi?

#include <sys\timeb.h>
...
struct timeb tInit, tFin;
ftime(&tInit);
// operazioni sul file
ftime(&tFin);
int tempo_trascorso = tFin.time - tInit.time;

"Flix" ha scritto

#include <iostream>
#include <ctime>
int main()
{
    // ...
    std::clock_t start,end;
    start = std::clock();
    // ...
    // quello che devi misurare
    // ...
    end = std::clock();
    std::cout << "Tempo impiegato= " << double(end-start) << " ";
    std::cout << CLOCKS_PER_SEC << "-esimi di secondo"  << std::endl;
    // ...
}
--
Gerolamo

se ti accontenti di avere un profilo
dell'intero programma e non di una sua funzione,
(e se usi linux)
puoi lanciare da console:
time tuo_programma param1 param2 param3...

     std::cout << "Tempo impiegato= " << double(end-start) << " ";
perche` fai la conversione a double? E` inutile.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 perche` fai la conversione a double? E` inutile.
Perchč end e start sono di tipo clock_t
E' garantito che l'operatore << sia definito qualunque sia
la definizione di clock_t?
Comunque ho preso spunto da un esempio trovato non so dove,
modificandolo solo leggermente :-)
Ciao
--
Gerolamo

 la definizione di clock_t?
se non sbaglio lo standard richiede che clock_t sia un tipo unsigned 
(quindi unsigned short int, unsigned int o unsigned long int) e per 
tutti questi tipi e` definito l'operator<< corrispondente.
Cmq se non avessimo la certezza che ci sia operator<< non avremmo 
neppure la certezza che esiste una conversione a double, quindi...


 neppure la certezza che esiste una conversione a double, quindi...
Già... mi sa che hai ragione... :-)
--
Gerolamo

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

Ciao sono Andrea.
Vorrei sapere chi sa usare il Borland C++ Builder 4.0 Professional bene?
Grazie

Sono una discreta conoscitrice del linguaggio Pascal,
vorrei avvicinarmi al linguaggio C++ , cerco materiale informativo x un
primo approccio, dove posso reperirlo?
Grazie 1000  
defe...@tin.it




Newsgroup: it.comp.lang.c++
Titolo: tutorial per database

Sto cercando qualche tutorial o qualche libro (economico) che speghi come
trattare i database (Access 97 o altri, compresi semplici file txt) in C++.
Col MFC wizard ho creato un progetto che serve ad accogliere database
Access, ma mi mancano parecchie conoscenze al riguardo. In piů nel wizard
potevo scegliere di usare database provenienti da file di testo, ma se
sceglievo questa opzione, nella schermata seguente dovevo scegliere per
forza un modo di gestire i dati, solo che nella lista non ce n'era nemmeno
uno !!! Come faccio a usare un file di testo senza incontrare questo
problema?
grazie in anticipo
--
San Vegeta from Hell
http://www.geocities.com/Area51/Dungeon/8436
http://come.to/Fantasy.it

 
Ho realizzato da poco un'applicazione, corredata da una libreria da
utilizzare
per VC 4.0, 5.0, 6.0, per utilizzare facilmente i database (in
particolare Access).
Questo mi ha permesso di ridurre i tempi di creazione di funzioni di
accesso
al db del 95%. Se questo ti puo' interessare puoi contattarm a questa
e-mail:
tagl...@hotmail.com
--
Posted from 
tlvsdy.vim.tlt.alcatel.it
 [151.98.8.244]
via Mailgate.ORG Server - 
http://www.mailgate.org
Newsgroup: it.comp.lang.c++
Titolo: socket e UDP...

WinNT 4, VC++5.
Nessun problema con il TCP, dove ho sempre fatto cosi`:
lato cliente
-WSASocket
-bind
-connect
-WSARecv
lato server
-WSASocket
-bind
-listen
-accept
-WSASend.
Ora vorrei usare UDP, ma cosi` non funziona:
lato cliente
-WSASocket
-bind
-connect
-WSARecvFrom
lato server
-WSASocket
-bind
-WSASendTo.
Cosa devo fare???
Dove sbaglio.
Grazie, Michele.


Pur essendo indifferente dal punto di vista del protocollo,
(ma non dei problemi di sincronizzazione temporale)
io preferirei mettere il Server in ascolto con recvfrom e
direi al client di "connettersi implicitamente" con sendto.
Per la prima fase di messa a punto lascia stare la famiglia
WSARecvFrom/WSASentTo. Implementerai dopo la versione
asincrona delle chiamate.
--== Sent via Deja.com 
http://www.deja.com/
 ==--
---Share what you know. Learn what you don't.---

direi al client di "connettersi implicitamente" con sendto.
Proprio in questo caso non mi funziona niente.
Quando faccio la bind io inizializzo il parametro di tipo sockaddr cosi`:
   sockaddr saServerAddr;
   saServerAddr.sa_family   = PF_INET;
   strcpy (saServerAddr.sa_data, "");
Questo da entrambi i lati.
E` giusto????
E allora perche` quando faccio la recvfrom mi si blocca e non si sblocca
piu` nemmeno sen faccio una:
   sockaddr saClientAddr;
   saClientAddr.sa_family   = PF_INET;
   strcpy(saClientAddr.sa_data, m_strIPServer);
   BYTE pBuffer [1024];
   if (sendto(m_sockClient,
            (char*)pBuffer,
            1024,
            0,
            (struct sockaddr FAR *)&saClientAddr,
            sizeof (sockaddr)) == SOCKET_ERROR)
Eppure con il TCP era cosi` facile!!!!
Dove sbaglio???
Grazie in anticipo. Michele

h_addr,pHostEnt->h_length);
				//if (SOCKET_ERROR!=bind
(MySocket,(const struct sockaddr *)&saddr,sizeof(saddr)))
				//{
					//SOCKADDR_IN ClientAddr;
					DWORD dwLen=sizeof(saddr);
					BYTE pBuff[2048];
					strcpy((char *)pBuff,"Hello
world");
					sendto(MySocket,(char *)
pBuff,strlen((char *)pBuff)+1,0,(struct sockaddr *)&saddr,dwLen);
					pBuff[2047]=0;
					printf("%s\r\n",pBuff);
				//};
			}
		}
		else
		{
			printf("socket error %08X\r\n",GetLastError());
		};
		WSACleanup();
	}
	else
	{
		printf("WSAStartup error %08X\r\n",GetLastError());
	};
	return 0;


 Esiste gia` qualche cosa del genere????
Il protocollo UDP non la prevede. Ad esempio MS-DCE, che costituisce
il protocollo applicativo per Microsoft DCOM, si basa su UDP, ma hanno
implmentato caratteristiche di affidabilita' a livello di applicazione
piuttosto che a livello di trasporto.


Ivanbrug ti devo ringraziare oltre misura.
Mi hai tolto dai pasticci.
Ciao e spero di poter ricambiare un giorno.
Newsgroup: it.comp.lang.c++
Titolo: Vorrei un parere su questi libri

Ciao a tutti!
Dando un'occhiata al ng mi sono gia' fatto un'idea (ed una lista...) di
alcuni libri su cui studiare per imparare da me il C++, quindi non vi
tediero' chiedendo ulteriori "general advices"... :)
Piuttosto, mi interesserebbe il vostro parere su un altro paio di libri
non contemplati tra quelli che consigliavate, ma di cui, in un modo o
nell'altro, ho sentito parlar bene. Essi sono:
- "Da C a C++" di Greg Perry
- "C++" di Herbert Schildt
(in particolare su quest'ultimo, ho notato che soprattutto su usenet
Schildt non è molto amato... ma non ho capito se come autore in generale
o se qualche suo libro particolare andrebbe... come dire, "salvato").
Grazie e ciao,
Giulio.

o se qualche suo libro particolare andrebbe... come dire, "salvato").
L'autore pare essere un buon programmatore C, ma col C++ proprio
no!
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

no!
Pare che sia decisamente da evitare anche per il C: andate a farvi
due ghigni su
http://www.lysator.liu.se/c/schildt.html

Newsgroup: it.comp.lang.c++
Titolo: inserire il link

Salve,
ho fatto un applicativo in Visual C++ e ora vorrei fargli una piccola
modifica, vorrei che all'avvio andasse a creare dei collegamenti (nel
desktop, nella barra di avvio veloce) per averlo più a portata di mano. le
uniche cose che ho trovato sono stati due VBscript che in effetti mi creano
questi collegamenti solo che li devo avviare separatamente al mio programma.
Voi sapete se esiste un'api o qualcosa del genere che mi risolva questo
problema? Grazie

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

pensavo che in quanto newsgroup di C mi poteste dare una mano, spero di
avere più fortuna in qualche altro sperando che mi possano dare una mano
"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio
news:a327cf48.03022...@posting.google.com...


 avere più fortuna in qualche altro sperando che mi possano dare una mano
Questo non e' un newsgroup sul C, e' un newsgroup sul C++.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Yavic, a una IDE gratis per GCC

Grazie per l'interesse che avete dimostrato per yavic (la IDE gratis
per GCC tutta italiana)
Ora č disponibile una nuova versione con qualche bug in meno.
Funziona bene anche con la nuova release 2.95.2 di gcc, colora
correttamente i commenti /**/, dialoga con qualunque GREP.
Mi ha fatto piacere ricevere le opinioni su yavic da alcuni di voi.
Fatemi sapere come e dove yavic potrebbe essere migliorato!
Sent via Deja.com 
http://www.deja.com/
Before you buy.



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

Ho creato una socket tcp con API di windows e tutto funziona bene ma quando
spedisco più pacchetti consecutivamente la socket li compatta e spedisce un
unico pacchetto.... C'è qualcuno che ha un'idea del motivo di questo
comportamento?
Grazie a tutti e ciao.
Chri.

chri wrote:

Per motivi di ottimizzazione interni a TCP che dipendono dai parametri della
connessione e dal livello IP sottostante. Credo che sia un pò OT su questo
newsgroup comunque.
Luca

Newsgroup: it.comp.lang.c++
Titolo: Importare dll create con matlab in borland c++ o visual c++

Ciao a tutti,
sto cercando di importare una dll generata con matlab con il comando:
mcc -t -L Cpp -W lib:xxxlib -T link:lib -h xxx.m
(ottengo xxxlib.dll, xxx.cpp, xxxlib.cpp, xxx.hpp e xxxlib.hpp). è
corretto creare la dll così?
qualcuno sa dirmi come integrarla in un progetto C++, in modo da potere
chiamare la funzione che contiene direttamente dal codice c++?
Grazie 1000!!!

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

Salve,
ho un problema con il cast di alcuni dati.
Ho un file .dat creato con visual basic che ha delle righe di 1500
caratteri ciscuna che sono dei semplici caratteri di testo, infatti se
lo apro con un editor(wordpad) riesco a leggerlo normalmente. Perň al
carattere 1047 iniziano i problemi ovvero da quella posizione in poi
sono
memorizzati dei numeri in double perciň dal carattere 1047 al carattere
1055 č memorizzato un numero double. Il fatto č che non mi compare il
numero bensě tutti caratteri strani tipo "9$ZvĄg\@", ho
provato a leggerli
con fread e ad inserirli in una stringa char di 8 caratteri e
successivamente a convertirla in double facendo il cast ma niente, mi
viene fuori un numero sempre uguale con segni di -e o qualcosa del
genere.
Ecco il codice:
----------------
...
char buf[8];
FILE* stream = fopen("file.dat", "r");
fseek(stream, 1046, SEEK_SET);
fread(buf, 8, 1, stream);
printf("%g", buf);
....
-----------------
Mi esce un numero, ma non č quello corretto... come posso fare? dove
sbaglio?
Grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 sbaglio?
Non ricordo più l'uso di fopen, ma non è che devi aprire il file in 
binario per leggere in binario? Era "rb"? Non ricordo.
Leggi la doc.
Kiuhnm

 Kiuhnm
no, niente, ho provato ma quando faccio il cast mi da dei numeri
negativi... :(
altre idee?


 altre idee?
union
{
   char buf[8];
   double dbuf;
};
FILE* stream = fopen("file.dat", "rb");
fseek(stream, 1046, SEEK_SET);
fread(buf, 8, 1, stream);
printf("%lf", dbuf);
fclose(stream);
Kiuhnm

 printf("%g", buf);
cosi' passi a printf un puntatore (&buf[0]) e poi interpreti tale
puntatore come un %g.
double num;
...
fread(&num, 8, 1, stream);
...
printf("%lf", num);
poi se il file e' binario dovresti usare rb.
in fine questo e' piu C che C++.
Tommaso


 sbaglio?
Nel vecchio vb un int č uguale ad uno short int del c/c++ (per essere piů
precisi ha 16 bit), magari il double del vb č un float dal punto delle
dimensioni in bit.

Grazie a tutti delle risposte, siete grandi ed io come sempre 
neofita all'ennesima potenza. Viva i newsgroup :)
see ya


Newsgroup: it.comp.lang.c++
Titolo: C++: consiglio x libri

Fra questi libri
- C++ Guida completa. 2a ediz. settembre 1999 (ANSI), di H. Schildth -
McGrawHill (nota: ho già la prima edizione)
- C++ tutto & oltre, Apogeo, ediz. 1999 (ANSI)
quale mi consigliate di acquistare per le novità dell'ISO C++?? e sopratutto
qualcuno ha già acquistato e sa dirmi qualcosa
--
---------
mailto: 
t...@freemail.it

qualcuno ha già acquistato e sa dirmi qualcosa
Non saprei, ma dato la fama dell'autore sconsiglierei il primo!
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Librerie BGI... le voglio far rivoltare nella tomba!

Salve a tutti. Scrivo su 'sto NG perchè vorrei sapere se qualcuno mi può
passare delle librerie *.BGI per la grafica a 256 colori in DOS con
relativi esempi. Se poi sapere qualcosa anche sulle schede audio...
Grazie in anticipo a tutti
#~#~#~#~#~#~#~#~#~#~
SpaccaCPU
ICQ Uin: 18228464
#~#~#~#~#~#~#~#~#~#~

Anche se non hai specificato la versione del compilatore (dipende dal
compilatore Borland C++ che usi (TC, TC++, BC++ fino alla 3.1, BC++ dalla
4.x in poi, e se la 4.x con o senza il Borland DOS Power Pack) perche' c'e'
differenza tra la versione 1, 2 e 3 (modo reale, DPMI16 e DPMI32) della
libreria) prova su 
http://www.eden.com/~spazm/SvgaBGI.html
Se ti serve per DOS real mode il file SVGA256.BGI funziona bene a 256 colori
nelle risoluzioni supportate.
Se ti serve in DOS DPMI16 le versioni del driver che trovi all'interno del
file per Borland Turbo Pascal Protected mode NON funzionano con gli
eseguibili prodotti dal compilatore C++ protected mode!
Se ti serve in DOS DPMI32 la libreria standard supporta gia' quella
risoluzione.
La libreria BGI puo' aver fatto il suo dovere (niente piu') in passato (e
tuttora nei programmi che ancora girano) ma oggigiono...
Cosa vuoi sapere sulle schede audio? Che marca/tipo (SB o compatibili,
ISA/PCI), per usarle come o per fare cosa?
Ti saluto.
SpaccaCPU wrote in message <01bdf6e3$1b673680$LocalHost@spaccacpu>...


 relativi esempi. Se poi sapere qualcosa anche sulle schede audio...
Per quanto riguarda i driver BGI, puoi fare una ricerca su altavista (
http://www.altavista.com
 ) passando come stringa da cercare "BGI drivers" e
vedere i risultati che ti da'. Una parte dei driver inoltre e' presente nel
file BGIKIT.ZIP nel sito ftp di Borland (
ftp://ftp.borland.com/pub/borlandcpp/devsupport/archive/dos/
 ).
Bye.
-- 
Jo Parrello - OWL/C++ Programmer (
jopa...@tin.it
)
http://space.tin.it/computer/giparrel

Newsgroup: it.comp.lang.c++
Titolo: API: ExitWindowsEx WINDOWS2000/XP

Salve, dovrei utilizzare il classico API:
    ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
Ma non funziona sotto Windows 2000 & XP
Sapete aiutarmi? grazie tante!
PS: Vi e' altrimenti un altro comando o qualcosa per forzare lo spegnimento
della macchina,
    chiudendo tutti gli applicativi in esecuzione senza chiedere conferma?
RIGRAZIE!

 
Temo che tu abbia sbagliato newsgroup. Dovresti chiedere in
it.comp.programmare.win32 o in un qualsiasi altro forum dedicato alla
programmazione in ambiente win32.
Mi è difficie credere, comunque, che per risolvere il problema in
questione non sia sufficiente effettuare una semplice ricerca con Google o
consultare MSDN.
Max