mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Programmatore alle primissime armi in cerca di consigli.

Ciao a tutti,
premetto che non so nulla di programmazione, ma circa 2 settimane fa mi č
venuta voglia di imparare.
Ed allora, tanto per tenere occupato il mio tempo e fare qualcosa di
interessante e costruttivo, sono andato a comprarmi un po' di libri sul C++
per avviarmi sulla lunga strada della programmazione
I libri che ho comprato sono i seguenti:
- "Programmare in Turbo C++" di Herbert Schildt
  seconda edizione
  Mc Graw Hill
  (in realtą questo mi č stato regalato e non l'ho comprato)
- "Il Manuale Visual C++" di William H. Murray e Chris H. Pappas
  Il linguaggio
  Mc Graw Hill
- "Il Manuale Visual C++" di William H. Murray e Chris H. Pappas
  Programmazione in Windows
  Mc Graw Hill
- "La grande guida Visual C++ 5.0" di Kate Gregory
  Jackson Libri
Come compilatore ho installato il Microsoft Visual C++ 5.0
Secondo voi vanno bene questi libri per iniziare o me ne consigliate altri?
A proposito ora sto leggendo il secondo che ho indicato ("Il Manuale Visual
C++" ecc..).
Gradirei le vostre risposte anche al mio indirizzo e-mail, dato che non sono
un assiduo frequentatore di questo newsgroup (almeno non ancora).
Ringrazio in anticipo per la vostra attenzione e per le vostre risposte.
Steve "Dark"
e-mail: 
sb....@tiscalinet.it
UIN: 2687179

I libri che ho comprato sono i seguenti:
[omissis]
Troppa fretta... i libri che hai comprato non vanno molto bene, sono
legati a particolari implementazioni del linguaggio, mentre dovresti
iniziare a imparare il linguaggio standard, depurato di tutte le estensioni
proprietarie dei vari tool.
Se proprio vuoi iniziare con il C++ scaricati il libro di Bruce Eckel
(
http://www.bruceeckel.com
).
Prova anche su
http://space.tin.it/computer/rgerola
http://www.geocities.com/SiliconValley/Foothills/6336/
http://games.eden.it/thecodersprimer/
http://www.developer.com/reference/r_library.html
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

   (in realtà questo mi è stato regalato e non l'ho comprato)


Prima di tutto vi ringrazio per le risposte ricevute, allora ho sbagliato a
prendere subito i libri prima di chiedere consiglio.
Come sempre la fretta fa brutti scherzi.... :-(
Vabbè vorrà dire che seguirò il vostro consiglio e mi dedicherò ad un altro
linguaggio.
Proverò con il Java.
Da dove comincio?
Quale compilatore devo usare? Quali libri mi consigliate di acquistare?
Grazie di nuovo.
Steve "Dark"
email: 
sb....@tiscalinet.it
UIN: 2687179

 linguaggio.
Tanto per chiarire che quello non è l'unico punto di vista tra i
frequentatori di questo ng, ti dico che io non sono d'accordo. Secondo
me iniziare con un linguaggio come il C++ non è affatto una cosa
negativa. L'importante è (ma questo vale qualunque linguaggio si
affronti) partire con una solida preparazione di base riguardante
l'informatica teorica.
EMG
Newsgroup: it.comp.lang.c++
Titolo: C++ BUILDER - API BITBLT

Salve ancora. C'e' qualcuno che può dirmi come faccio a 'chiamare' dal C++
builder una Api Win 32? mi interessa in particolare L'Api BitBlt. A
proposito, posso creare una mia DLL che contenga chiamate alle Api (scusate
l'ignoranza) o ci sono limitazioni nella creazione delle DLL?
Grazie
Francesco

l'ignoranza) o ci sono limitazioni nella creazione delle DLL?
Assolutamente nessuna limitazione ;-)
--
Stefano Tempesta
PC Service Software
http://www.tempesta.org
ste...@tempesta.org

Newsgroup: it.comp.lang.c++
Titolo: error C2146

--------------------Configuration: Textures - Win32
Debug--------------------
Compiling...
Textures.cpp
D:\DXSDK\include\d3dx8math.h(259) : error C2065: 'UINT_PTR' : undeclared
identifier
D:\DXSDK\include\d3dx8math.h(259) : error C2146: syntax error : missing ')'
before identifier 'p'
D:\DXSDK\include\d3dx8math.h(271) : error C2146: syntax error : missing ')'
before identifier 'p'
Error executing cl.exe.
Textures.exe - 3 error(s), 0 warning(s)
----------------------------------------------------
Perchè quest'errore? Perchè mi dice che il tipo UINT_PTR non è dichiarato?
In realtà non ho visto dichiarazioni nella struttura dell'header, e ma
allora che fanno questi, creano le librerie che non funzionano o sono io che
ho commesso errori?
Grazie mille a Presto

 ho commesso errori?
Hai incluso windows.h prima degli header delle DirectX? Hai definito
STRICT? (È ovvio, però non si sa mai...)
PS: Hai capito che qui sei OT e dovresti spostarti su
it.comp.programmare.win32? ;-) Ciao!
Newsgroup: it.comp.lang.c++
Titolo: membri static

Perche' se ho una classe:
class Date{
//...
static Date default_date;
//...
};
la definizione di default_date non e' quella che ho gia' scritto ma e' 
Date Date::default_date(...); scritta all'esterno della definizione 
della classe? L'ho letto su "the c++ programming language".
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 
la risposta breve è : perchè SI. he heh e
Scherzi a parte, è una cosa che secca pure me, perché sarebbe 
bello e comodo che la dichiarazione fosse anche uan definizione 
come le altre var. membro non statiche.
C'è però un inghippo, serio
I membri non static possono essere inizializzati dal 
costruttore, che non è statico nemmeno lui
I membri static invece non "possono" (cioè, avrebbe lo scopo di 
multi-iizializzare le stesse variabili, magari usate già dalle 
istanze precedenti) essere inizializzati così.
Allora il linguaggio, per consentirne la a volte necessaria 
inizializzazione, avrebbe dovuto consentire l'inizializzazione 
DENTRO la classe, cosa che non è ammessa per i membri normali e 
crea anche clash con l'uso dell' =0 per definire membri PURE 
VIRTUAL.
DI conseguenza l'inizializzazione è stata dislocata al di fuori.
So che non è una spiegazione, ma per lo meno ci capisce dove 
nasce il problema dei membri static
Ciao
Soviet-Mario

Soviet_Mario ha scritto:

E quindi  static Date default_date;  all'interno della definizione della 
classe e' una specie di dichiarazione-segnaposto? E Date 
Date::default_date(9,3,1987) e' la definizione vera e propria di un 
oggetto Date usando pero'  Date::default_date  come nome per far capire 
che ci si riferisce alla  Date::default_date  gia' dichiarata?


 che ci si riferisce alla  Date::default_date  gia' dichiarata?
esatto
ciao
CCCP++Mario

 della classe? L'ho letto su "the c++ programming language".
Il problema si ha quando la classe e' definita in un header file
incluso da piu' file.
In questo caso, il compilatore allocherebbe lo stesso oggetto in piu'
posti, costruendolo piu' volte...insomma puoi immaginare le
conseguenze.
Invece, definendo il membro statico in un file .cc (fuori dal .h) esso
sara' univocamente definito.
Nota che se dichiari Date Date::default_date(...) nel .h incorri negli
stessi problemi (il simbolo viene ri-definito piu' volte e il linker
protesta).
Saluti,
Fabio
Newsgroup: it.comp.lang.c++
Titolo: Approssimazione

Come posso creare una funzione che approssimi un numero ad un decimale che
scelgo?
Mi interesserebbe costruirmela senza utilizzare altre librerie.
Grazie a tutti.
Luca

 scelgo?
Sono nuovo del ng anch'io, perņ  ti consiglio di lurkare per qualche
giorno prima  di postare (l'ho  fatto anch'io), ad esempio  a questa
domanda era gią stato risposto qualche giorno fa.
p.s. deja, pardon google.groups č tuo amico: 
www.deja.com
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick VanniB   |   ICQ 18526701 |
--- rimuovi nofesso per rispondere ---
---PC powered by Linux kernel 2.4.14vb
La  pioggia   casca  sia   sul  giusto
che  sull'ingiusto.   Perņ  l'ingiusto
generalmente  ha   l'ombrella  che  ha
fregato al giusto. 

 p.s. deja, pardon google.groups è tuo amico: 
www.deja.com
Seguo ormai il ng da mesi, solo che non ho il tempo sufficente a leggere
tutti i post che ci sono. Mi scuso per la ripetizione, andrò a ricercarmi il
messaggio precedente.
Luca
Newsgroup: it.comp.lang.c++
Titolo: TerminateProcess

salve
chiedo scusa se il quesito puo sembrare banale
ma non ho esperienza di programmazione windows
ho bisogno di un programmino che invocando il comando
TerminateProcess di windows mi termini l'esecuzione di
una mia applicazione di cui conosco il nome dell'eseguibile:
Premi.exe che poi è il nome che compare in task-manager.
si puo fare?
grazie nello

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

...

Anche se non è il group giusto, e magari hai già risolto il problema,
ti mando un esempio di codice (è ridotto all'osso, se lo usi
implementa bene tutti i check di validità degli handle tornati...):
...
#include "Tlhelp32.h"
DWORD TheTaskId;
char como[256];
HANDLE hSnapShot;
HANDLE TheProcess;
BOOL esito;
PROCESSENTRY32 uProcess;
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
...
// controllo validità handle hSnapShot...
...
        uProcess.dwSize = sizeof(uProcess);
        esito = Process32First(hSnapShot, &uProcess);
        //Loop di ricerca dei processi per trovare quello voluto...
        while(esito)
	{
	   if (strncmp(strup(uProcess.szExeFile)), "PREMI.EXE", 9) == 0)     
 		   {
                // Trovato PREMI.EXE , acquisicce un handle e lo
termina...
                TheTaskId = uProcess.th32ProcessID;
                TheProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,
TheTaskId);
                if (TheProcess == NULL)
                {
                   // gestione errore OpenProcess...
                }
                else
                {
                   // Termina il processo con retcode -1 
                   TerminateProcess(TheProcess, -1);                  
                }
                break;         // uscita dal while
            }
            // continua ricerca
            esito = Process32Next(hSnapShot, &uProcess);		
        }     //end-while
        // Finita ricerca processi
        CloseHandle(hSnapShot);
          ...
 
Per i dettagli sulle funzioni CreateToolhelp32Snapshot, Process32First
e Process32Next guarda l'MSDN.
Ciao

 Anche se non è il group giusto, [...]
Maleducato.
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: correttore ortografico

Salve a tutti,
ho un piccolo problemino mi servirebbe sviluppare tramite
visual c++ 6.0 un correttore ortografico che analizzi da un file una frase
in italiano e la corregga.
La mia domanda č questa:
C'č qualche classe che mi gestisce ciň?
Grazie!!

 ha scritto nel messaggio
news:QZ1I8.10049$ie.2...@twister2.libero.it...

Chiamalo piccolo problemino...
Le regole in italiano sono milioni e nemmeno i migliori editor di testi sono
complete in questo...
Ciao
--
----------------------------------------
Carlo Camarda
chiamac...@tiscalinet.it
]@#[ Anna I Love You ]#@[

 writes:

C'e' un'intera montagna di classi...  ad esempio puoi guardare
'aspell' su 
http://aspell.sourceforge.net
; ha un dizionario italiano
ed e' disponibile con tutto il sorgente (open source).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 ha scritto nel messaggio
news:8aelfyl...@mlinux.pd.infn.it...

Salve!
 Anch'io sono molto interessato ad un correttore ortografico per Visual C++
o Builder. Ho provato a scaricare il materiale sul sito suggerito dal prof
Loreti, ma ho trovato solo del sorgente che non sono riuscito ad utilizzare
(sono ancora agli inizi con il C++!). Potete aiutarmi?
Mi basterebbe anche soltanto l'eseguibile compilato dai sorgenti dell'aspell
mi trovate a 
Heine...@bigfoot.com
Grazie!

Newsgroup: it.comp.lang.c++
Titolo: estrazione da documento

salve a tutti....non sono un esperto di c e mi servirebbe un programma
che da un documento doc estragga ad esempio tutte le lettere a, le
memorizzi in un file e le conti anche.....chiedo forse troppo?

memorizzi in un file e le conti anche.....chiedo forse troppo?
Si', chiedi troppo, in quanto il formato .doc di Word e' molto
complesso.
Newsgroup: it.comp.lang.c++
Titolo: Stampa in MFC

Sto' lavorando alla stampa del contenuto di un controllo con i metodi
tradizionali di MFC. Prima della stampa sono in grado di "bararare",
ridimensionando il controllo in modo che sia possibile visualizzare tutto il
contenuto, quindi, invio un messaggio WM_PAINT passandogli il device context
della stampante. Funziona tutto, anche l'anteprima di stampa, tranne  che la
stampa si blocca alla prima pagina. Come si a chiudere una pagina e
continuare la stampa su un'altra? Ho fatto diverse prove ma non ci sono
riusciuto.
Grazie a tutti e ciao
Merlino (
emanuel...@hotmail.com
)
ICQ: 13263255

 Come si a chiudere una pagina e continuare la stampa su un'altra?
Funzioni API StartPage()/EndPage().
EMG


Conosco quelle funzioni, ma io non ho modo di chiamarle dopo aver inviato il
WM_PAINT al controllo sul device context della stampante. Putroppo dovrei
trovare un modo di spiegare al sistema che l'area da stampare e' superiore a
quella della pagina, in modo che la suddivida su piu' pagine. Non so' se
pero' questa funzione puo' essere delegata e gestita automaticamente dal
sistema. Vorrei evitare di stampare ogni singolo componente del controllo,
verificando ogni volta i limiti della pagina, perche' e' veramente poco
efficiente (anche se di solito la stampa viene implementata cosi').
Ciao
Merlino

Newsgroup: it.comp.lang.c++
Titolo: Come spedire stringhe ad altre applicazioni?

Vorrei fare un programma che spedisca stringhe ad un altro programma,
per esempio il notepad. Immagino che occorra in qualche modo prendere la
handle della finestra destinataria (come?) e poi inviarci un messaggio
tipo keydown o qualcosa del genere. Avete suggerimenti?
=========================================================
Of all the things I've ever lost, I miss my mind the most
=========================================================
    Christian Prinoth     |  For replies please remove
 
c.pr...@flashnet.it
  |  ANTISPAM from the address
=========================================================

tipo keydown o qualcosa del genere. Avete suggerimenti?
Per simulare la pressione di tasti, usa keybd_event sotto Win95, o
meglio
KeyboardEventEx sotto Windows NT.  Le pressioni di tasto vanno alla
finestra che ha il focus, quindi devi anche gestire questo:
-- scopri quale finestra e` attualmente attiva con GetForegroundWindow
    e salva questa handle,
-- cambia la finestra attiva con SetForegroundWindow alla sua handle,
-- simula l'attivita` di tastiera con keybd_event (o KeyboardEventEx),
-- ripristina la finestra inizialmente attiva con SetForegroundWindow
    alla handle salvata al primo passo
Per scoprire a quale finestra vuoi inviare le pressioni-tasto simulate,
puoi usare FindWindow, FindWindowEx, EnumWindows con qualsiasi
opportuna analisi dell'HWND ricevuta nella tua procedura di callback,
o altri metodi ancora.  Buon lavoro!
Alex

o altri metodi ancora.  Buon lavoro!
Grazie mille per le informazioni!

Newsgroup: it.comp.lang.c++
Titolo: Clausola throw() relative a metodi

Salve!
A causa della clausola throw() in questa classe
class A{
        public:
        void f()throw(A *){}
};
il compilatore mi segnala "error: invalid use of undefined type
'class A'" e "error: forward declaration of 'class A'".
Non è lecito fare quel che desidero?
Grazie

"Zero" <frank_sanna@SPAMMER_AL_CONFINO_IN_SIBERIAlibero.it> ha scritto nel 
messaggio news:w0Rdf.37051$65.11...@twister1.libero.it...

Strano. Su tre compilatori (BCC55, VC++Toolkit2003 e DJGPP) solo quest'ultimo 
(basato sul GCC 4.01) mi dà quell'errore mentre gli altri due compilano 
regolarmente. Chi sbaglia?
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

 compilano regolarmente. Chi sbaglia?
Sbagliano i primi due. 
  [15.4/1]
   (...) A type denoted in an exception-specification shall not 
   denote an incomplete type. A type denoted in an 
   exception-specification shall not denote a pointer or reference 
   to an incomplete type, other than void*, const void*, volatile void*, 
   or const volatile void*.
Max

 ha scritto nel messaggio 
news:dl9ns6$gkr$9...@newsreader.mailgate.org...

Grazie!


 
Quindi il tipo una classe, riferita nell'ambito nella propria
implementazione, č un tipo incompleto.
Grazie e ciao!

 implementazione, è un tipo incompleto.
Un tipo e' incompleto fino alla parentesi graffa che chiude la sua
definizione, quindi lo e' una classe all'interno della sua definizione
stessa, si.
Ciao,
Nicola

 stessa, si.
Però per certi aspetti è trattato come completo: infatti può essere usato
come tipo di ritorno di una funzione membro. Non mi è chiarissimo il motivo
per cui lo Standard non permetta a una funzione membro di T di specificare
throw(T), mentre permette di restituire un T per valore.
Max
Newsgroup: it.comp.lang.c++
Titolo: un dubbio sulla costanza e la natura di this

ho letto che this è un puntatore implicito all'oggetto proprio (quello su
cui è invocato un metodo) e che è passatto implicitamente a tutti i metodi
come primo parametro.
Inoltre ho letto che this è un puntatore costante e non può essere
modificato. Ora io so che in C se scrivo
const int c*;
c è un puntatore non costante ad un intero costante.
se invece scrivo
int * const c;
c è un puntatore costante ad un intero non costante.
Perchè nei libri sul C++ trovo sempre scritto, quando spiegano this, che è
come se this fosse dichiarato in questa maniera?
void string::operator=(const string* this, const string& Str)
Secondo me è sbagliato. Non dovrebbe essere così?
string* const this
inoltre è vero che this è una variabile membro implicita dichiarata come
private di ogni classe? In tal caso non si dovrebbe dire che viene passata
come parametro. La questione dipende dall'implementazione?

 come parametro. La questione dipende dall'implementazione?
Credo che il modo di gestire this sia dipendente dall'implementazione,
anche se non ho mai sentito di nessuno che non usasse la tecnica di
passarlo come parametro. Tieni presente che this e' l'indirizzo
dell'oggetto e non c'e' nessun bisogno di memorizzarlo nell'oggetto
stesso.
Ciao,
Nicola

 come parametro. La questione dipende dall'implementazione?
No, non dipende dall'implementazione: non e` una variabile-membro
in nessun senso del termine.
Alex

Newsgroup: it.comp.lang.c++
Titolo: Dubbio su ciclo for...

Salve,
volevo semplicemente chiarito questo dubbio:
in un semplice programma come il seguente:
	for (int i = 0; i < 4; i++)
		std::cout << i << std::endl;
ho il seguente output:
0
1
2
3
Perchč? Cioč, anche se "i" č inizializzato a 0, non viene subito
incrementato di 1? Oppure quel "i++" all'inizio serve solo a indicare il
valore di incremento, quindi cominciando a far aumentare "i" partendo
con il suo valore d'inizializzazione?
Grazie
Luigi
-- 
Posted from 
smtp1.libero.it
 [193.70.192.51] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

3
E' corretto cosi'... un'istruzione del tipo
	for (blocco_init; blocco_condizione; blocco_variazione)
			corpo_ciclo
viene "tradotta" come
	blocco_init
	while (blocco_condizione)
	{
		corpo_ciclo
		blocco_variazione
	}
quindi prima cicla e poi incrementa.
 

con il suo valore d'inizializzazione?
se vuoi che stampi anche il 4 devi fare un ciclo da 0 a 4 comprendendo
l'estremo 4 quindi utilizzando l'operatore <=. Infatti nel for
l'incremento viene fatto alla fine del ciclo...
Lawrence Oluyede
rhy...@insieme.net
"La realtà delle cose si nasconde dietro 
la loro reale apparenza (Maestro Hiamuri)"
Newsgroup: it.comp.lang.c++
Titolo: effetto flash

Vorrei ottenere l'effetto flash su un immagine(vari tip .gif,.bmp,.jpeg  etc
.);con  il c++ (uso borland c++ 4.5e c++builder 1),non so come ottenerlo.Chi
può darmi qualche info. o sorgente d'esempio ?
Un grazie anticipato a chi vorrà aiutarmi.

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: Valori double

Ciao,
nella finestra watch del debugger vedo che il valore di una variabile
double è
2.369913339214e-317#DEN
Cosa significa #DEN??? Il visual c++ mi dice che il range minimo è
1.7E +/- 308...mah...


Denormalizzato.
Vedi
http://en.wikipedia.org/wiki/Subnormal
http://en.wikipedia.org/wiki/IEEE_754
Kiuhnm

Kiuhnm ha scritto:

Grazie, questa veramente mi mancava e non ci sarei arrivato mai!!!!
Ciao

 
http://en.wikipedia.org/wiki/IEEE_754
C'erano gli stessi articoli in italiano...

Newsgroup: it.comp.lang.c++
Titolo: c++ builder e seriale

C'e' qualche santa persona che sappia dirmi come sia possibile gestire
le porte del PC
Seriali e parallele? Con il builder3?
In turbo c c'era la funzione outportb ma qui non trovo nulla che parli
di comm o di parallele...
fm...@comunicate.it
--
Posted from 
mta2.iol.it
 [195.210.91.152]
via Mailgate.ORG Server - 
http://www.mailgate.org

...

Ciao , sono SANTO Roberto , per la gestione delle porte in
BCB puoi seguire 2 strade :
1) - usi la serie di funzioni CreateFile con la quale puoi proprio gestire
        le porte seriali , parallele (mi sembra) etc etc.......
        é un po lungo perche devi farti tutto da 0
2) usa un componente per la gestione di queste porte, in rete ce ne sono
     di molto belli anche gratuiti...... uno per la gestione delle seriali é
a:             
http://www.protogene.com/people/giles/builder.html
 io lo uso
per un mio progetto
per la gestione di GPS e va bene, cercando in rete comunque troverai molti
altri
componenti......
evtl scrivimi che te lo invio
Roberto
rco...@NOSPAMtinet.ch

 Seriali e parallele? Con il builder3?
Dovresti provare con le API CreateFile e WriteFile; fai qualcosa del genere:
comPort = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,  0, 0,
OPEN_EXISTING, 0, 0);
WriteFile(comPort, string, length, &bytesWritten, 0);
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org
Newsgroup: it.comp.lang.c++
Titolo: Le FAQ di Paolo Marotta

Scusate, ma dove sono finite le FAQ in oggetto?
Mi ricordo che c'erano, qualche mese fa...
Ciao.
--
DGP85
http://daps.cjb.net/

Scusate, ma dove sono finite le FAQ in oggetto?
su 
www.programmazione.it
comunque le riposto.
Paolo
p.s.
  Non sono mie, ma di tutto il NG le abbiamo scritte
  in collaborazione.
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

  in collaborazione.
Beh, lo so, c'ero anch'io quando sono state formate, ma volevo
distinguerle da quelle che erano presenti _prima_ su
www.programmazione.it
.


Mi ricordo che c'erano, qualche mese fa...
A proposito: non sono postate su it.faq?


A proposito: non sono postate su it.faq?
Non mi sono mai posto il problema anche perche` non seguo
quel NG.
Basta un normale post?
Paolo


Newsgroup: it.comp.lang.c++
Titolo: GNU CC

Toby Heywood schrieb:

If you want to be a UN*Xian, a better starting point may be the "make"
command and the corresponding man-pages, becaus sooner or later (e.g.
for larger projects) "make" is the tool to use.
For the real UNIX-newbee: What the IDE (e.g. those Visual-Stuff) and the
project-builder is for the MS-ian,is make for UN*X-programmers
Have Fun
Kai Glaesner

Newsgroup: it.comp.lang.c++
Titolo: programmazione videogame

qualkuno mi potrebbe dire una newsgroup ke parli di programmazione di
videogame ( italiana)

 ha scritto nel messaggio news:3af04...@news.bluewin.ch...




it.comp.giochi.sviluppo é l'ideale per quello che cerchi. Occhio, che
scrivere K al posto di C é una lamerata.
Il Ghenio
WINWORD.EXE - ERRORE DI APPLICAZIONE
l'istruzione a "0x3017ff27"ha fatto riferimento alla
memoria a "0x02a3143c".La memoria non poteva essere 'read'.

Il Ghenio
Se ci riprova attivi LamerExterminator, vero? 8)
Luc.
Newsgroup: it.comp.lang.c++
Titolo: OT Colori

Consete qualche programmino (sotto win32) che permetta di stampare la syntax
highlighting a colori su una stampante. No perchè uso VC++6 ma questo mi
stampa i programmi solo in bianco e nero...
Bye
Antonio

 ha scritto nel messaggio
news:JaEX9.33991$lj5.3...@tornado.fastwebnet.it...

Il famosissimo vim:
http://www.vim.org/download.php
è un editor, per il tuo scopo è sufficiente aprire i files e fare 'print'
... !!

Newsgroup: it.comp.lang.c++
Titolo: Classe template che accetta puntatore a funzione

Ho una classe templetizzata MyClass, che ha una funzione membro clear
() che accetta come unico parametro un puntatore a funzione. Questa
funzione ha come unico parametro un elemento el di tipo T.
Praticamente richiamando la clear() e passandole l'idirizzo di una
funzione f(), quando la clear() dovrà eliminare i dati li passerà ad f
() che si occuperà dell'eliminazione vera e propria.
Se dichiaro:
template <class T>
class MyClass
{
  public:
    void clear(void(*f)(T el));
}
E fin qui tutto ok, se dichiaro:
MyClass <int *> myclass;
void myfunction(int *el);
allora la chiamata:
myclass.clear(myfunction)
funziona tranquillamente.
Ora però sto creando un'altra classe contenitrice (chiamiamola
ExternalClass) che userà MyClass come oggetto di memorizzazione dei
dati, ed anche questa classe "esterna" ha una funzione membro chiamata
clear() che richiama la MyClass.clear().
A questo punto quindi alla MyClass.clear(void (*f)(T el)) dovrei
passare una funzione *membro* della classe esterna ExternalClass che
faccia la delete dei puntatori ricevuti (la funzione membro di
ExternalClass la chiamo per esempio fcleardata()), ma il compilatore
mi dice: No matching function for call MyClass<int *>::clear(void
(ExternalClass::*)(int *))
La funzione ExternalClass::clear() è dichiarata ed implementata come
void ExternalClass::fcleardata(int *).
Come posso procedere?
Mi trovo su Mac con XCode e compilatore g++ 4.2.1

Per il momento ho dichiarato la funzione membro
ExternalClass::fcleardata(int *) come static, e funziona anche da
privata (che è pure meglio).
Se ci sono altri modi, ben vengano!!!
Newsgroup: it.comp.lang.c++
Titolo: Subclassare i common control

Mi stavo chiedendo se puo' essere possibile "intercettare" la chiamata alla
funzione base di paint delle finestre di tutto il sistema (Windows 9x/NT)
per di modificare l'aspetto attuale in uno personalizzato. Una cosa simile a
quella che mi piacerebbe fare, veniva fatta in Windows 3.11 con la libreria
CTL3D che cambiava il disegno delle finestre da 2D a 3D. In quel caso era
necessario compilare linkando la DLL (anche se una volta, dopo un GPF, tutte
le finestre mi sono diventate tutte 3D!), mentre nel mio, vorrei realizzare
una specie di plug-in.
Io ho in mente l'idea ma non so' come realizzarla tecnicamente, magari
intercettando il WM_PAINT o sostituendo le DLL dei controlli con quelle
personalizzate... boh?!
Pensate sia possibile?
Ciao!
Merlino (
emanuel...@hotmail.com
)
ICQ: 13263255

Pensate sia possibile?
Prima parli di Plug-in, ora torni a parlare che vuoi una DLL a parte.
Sigh!!!! Comunque se vuoi crearti una DLL contenente controlli custom
tipo quelli di Borland, allora devi trovarti un bel po' di
documentazione (forse nel Petzold c'era qualcosina sui controlli
custom). Ad esempio la guida in linea di BWCC di Borland, ti dice
anche come interfacciare la DLL dei custom controls con il Resource
Workshop (l'editor di risorse della Borland). 
Bye.
Joseph Parrello.
Joseph Parrello - OWL/C++ Programmer
http://JoParrello.freeweb.org
(
jopar...@geocities.com
)

Ti ringrazio per la risposta e mi scuso se non sono riuscito a spiegarmi.
Per adesso l'idea e' piu' teorica che pratica e quindi ci sono ancora molte
porte aperte, per questo ho parlato contemporanemente di plug-in e DLL. Lo
scopo finale sarebbe quello di modificare l'aspetto di un sistema (in questo
caso Windows), semplicemente sostituendo (o subclassando) alcune librerie di
sistema. Tecnicamente veniva fatto dalla gia' citata CTL3D.DLL, purtroppo
come hai detto, non penso sara' cosi' semplice.
Grazie e ciao
Merlino
Newsgroup: it.comp.lang.c++
Titolo: - RIPETIZIONE NOMEFILE CON spawnlp

- RIPETIZIONE NOMEFILE CON spawnlp
si può sapere xchè devo ripetere 2 volte il nome del file da eseguire???
esempio:
spawnlp(P_WAIT,"notepad","notepad","\w.bat",NULL);
Che senso ha ripetere le stesse cose???
--
RISPONDETEMI SUL NEWSGROUP

 Che senso ha ripetere le stesse cose???
Le _spawn vogliono una serie di N argomenti arg0,arg1,...,argN-1 oppure un
array arg[N+1], in cui l'ultimo elemento arg[N] č il terminatore NULL.
L'argomento arg0 (o arg[0]) č obbligatorio, per qualche ragione che non
conosco. Il fatto che generalmente per esso venga utilizzato lo stesso nome
del processo da invocare č una pura convenzione. L'uso di altre stringhe non
provoca comunque errori.
Ciao.
Roberto Cavada.

 Che senso ha ripetere le stesse cose???
Il primo nomefile č il percorso e il nome dell'eseguibile da lanciare
mentre il secondo rappresenta il valore che viene ad esso passato come
primo parametro (argv[ 0 ]). Possono seguirne altri separati da virgola.
EMG

 provoca comunque errori.
Può servire a fare credere al programma che lanci di avere un altro nome.
Non so che utilità possa avere, forse se gli metti anche il path può servire
a farlo eseguire dandogli come directory di lavoro quella che preferisci, ma
non credo che si usi più questo metodo nei programmi.
--
Alessandro Monti

Newsgroup: it.comp.lang.c++
Titolo: Programmatore C++

Tera Digital Publishing Spa ricerca un programmatore C++, per
l'inserimento nella struttura di sviluppo dei sistemi editoriali, con
contratto di assunzione a tempo indeterminato.
Sono preferite fondate esperienze di programmazione in alcuni di
questi ambienti:
Microsoft Windows, MFC
Microsoft SQL Server
Oracle
Apple Mac
Perl
Microsoft IIS, Pagine ASP
La sede di lavoro č Milano.
Gli interessati possono inviare il loro curriculum a 
jo...@teradp.com
-- 
Gian Camillo Vezzoli
Tera Digital Publishing SpA
http://www.teradp.com



 Tera Digital Publishing Spa ricerca un programmatore C++, 
[cut]
Luc, sbaglio o la Tera e` l'azienda dove lavori tu? Dovresti 
bacchettarli per non aver rispettato la netiquette! :-)
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

 bacchettarli per non aver rispettato la netiquette! :-)
Ho fwd il tuo post al mio responsabile... 8)
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Spedire un fax

Qualcuno sa come si fa?
Ho letto su MSDN che con TSPI ( un estensione di tapi, il driver di
telefonia) si puň fare una chiamata telefonica classe3, cioč quella dei fax,
e poi tramite l' handle della linea si possono inviare i dati.
Le domande sono due:
-Se un fax č un file grafico, quale formato deve essere utilizzato?
-Come si possono convertire file di testo e immagini nel suddetto formato?
Grazie in anticipo e buon 2000, il mio indirizzo č 
afias...@hotmail.com



Nelle stesse TAPI/TSPI e' anche scritto che per spedire un FAX e' 
consigliabile (ma non obbligatorio) utilizzare le MAPI.
Fausto

-- 
// ----------------------------------------------
// Fausto Fabbioni            
// Software Developer - Embedded Systems Adviser
//
// Certified C++ Programmer 
// Certified High IT Aptitude
// 
http://www.tekmetrics.com/transcript.shtml?pid=19855
//
// E-Mail: 
fabb...@freelance.it
// Web:    
www.freelance.it
// GSM:    +39-(0)347-4150101
// ----------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: [OT]Tradurre Visual Studio 6.0 dall'inglese all'italiano

Salve,
vorrei sapere se è possibile trovare su internet una patch che traduca  VS
6.0 dall'inglese all'italiano.
Saluti
Vegeta

6.0 dall'inglese all'italiano.
Perchè ti vuoi fare del male? Tutti i doc sono riferiti alla versione
inglese (essendo in inglese...).
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Oberon e C++

Un saluto al ng, dopo tanto che non lo frequento!
Un mio collega mi sta rompendo le scatole con un linguaggio chiamato 
"Oberon".
Dato che non ho il tempo necessario per studiarlo (e non mi fido delle 
analisi trovate su web) vorrei sapere se qualcuno di voi lo conosce e 
cosa ne pensa.
Kiuhnm


Ci tengo a precisare che chiedo qui perché m'interessa un parere da 
"programmatore di C++".
Kiuhnm

 cosa ne pensa.
Ne sentii parlare taanto tempo fa, tipo 15 anni fa... :-|
Dovrebbe essere il linguaggio che Niklaus Wirth sviluppň dopo il Pascal,
 ma di piů, nin zo...

  ma di più, nin zo...
Sì, è così.
Comunque ho visto che comp.lang.oberon è a dir poco spopolato quindi, se 
tanto mi dà tanto...
Kiuhnm

 Kiuhnm
Manlio

 
Se è tutto li posso dedurre 2 cose:
la sintassi è simile al pascal
non è obj oriented ma ha i moduli


Anche io ricordo che si trattava di una specie di evoluzione a oggetti
del pascal. Temo che non abbia avuto un gran successo nemmeno in
ambito accademico...
Dovendo scegliere un "pascal a oggetti" sicuramente ci sono alternative
piu' interessanti (freepascal e delphi per citarne due).
Ma in che senso il tuo collega ti "rompe le scatole con Oberon"?  :)
ciao
Giacomo

On 21 Feb, 19:15, Giacomo Degli Esposti

Oberon è un linguaggio ad oggetti sviluppato dal professore N. Wirth
padre del Pascal come evoluzione del linguaggio Modula 2. Non si
tratta di un linguaggio superato ma al contrario di un ottimo progetto
accademico da cui sono scaturiti un bellissimo sistema operativo e HW
specifici. Il nome viene dall'astronomia (credo che sia la luna di un
qualche pianeta). Riguardo alla tua domanda comparativa col C++, la
risposta dal punto di vista della teroia della calcolabilità è una
sola: entrambi fanno la stessa cosa (Turing e Godel non ci hanno
lasciato altre speranze), diverso è il parere se parliamo di modo,
cioè di come lo fanno. Il C++ è un linguaggio di quasi seconda
generazione, cioè basato su una evoluzione ad oggetti del classico
paradigma "strutture dati+programmi=algoritmi" che linguaggi di
generazioni successive come java, C#, F#, Modula-2 e Oberon stesso
hanno da tempo superato (ad es. prova a fare reflection o
metalanguaging in C++). La capacità espressiva facilita il
raggiungimento dello scopo ed in questo il C++  sta all'Oberon come
l'assembler stava al C o al Pascal.


[CUT]
a questo link
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon07.Report.pdf
(che è quello postato da manlio perilio)
si parla di moduli e non di programmazione ad oggetti.
Questo report non è completo ?
Dico cosi perchè, da come ricordo, la programmazione a moduli non e' 
programmazione ad oggetti

 java, C#, F#, Modula-2 e Oberon stesso hanno da tempo superato 
Le cose non stanno proprio così ;-).
Mai sentito parlare di Lisp, Prolog e ML?
Lisp è il linguaggio più vecchio (1959), subito dopo il Fortran (1957).
Prolog è del 1972, ML del 1973.
Ciao  Manlio Perillo

enoquick ha scritto:

E` object-oriented. Lo è dal '91.
http://en.wikipedia.org/wiki/Oberon-2
Newsgroup: it.comp.lang.c++
Titolo: Problema di conversione.

Salve a tutti. Ho un problma. Ho modificao un programmino per la conversione
di files da binario a ascii (nel senso che l'apparato di misurazione che
utilizzo scrive  risultati su un file binario e il programma li trasforma in
numeri leggibili per poter fare dei grafici).
La routine che fa la trasformazione è questa:
int rd_int(f)
FILE *f;
{
 int b0,b1;
 b0=getc(f);
 b1=getc(f);
 return(b0<<8 | ((unsigned char)b1)&0x00ff);
}
Mi sembrava abbastanza chia il significato della routine (che non ho fatto
io), ma l'unico compilatore che mi da un risultato accettabile è quello del
Turbo c++ della Borland. Sia il VisualC++ che altri compilatori producono
programmi che trasformano i dati ma invece di dare sia numeri positivi che
negativi (come fa il prog compilato col TurboC++) mi danno solo numeri
positivi in uscita. Il grafico prodotto alla fine non ha ordinate
positive...
Per il momento ho risolto compilando con il TurboC++, ma mi piacerebbe
sapere se c'è un errore nella funzione di trasformazione e come posso fare
per avere un risultato uniforme con tutti i compilatori.
Grazie.
vas "at" 
libero.it

 ha scritto nel messaggio
news:stmK9.10733$Ou4.3...@twister2.libero.it...


che ti hanno scritto non trasforma nulla!!!!
Vabbè io ho detto trasforma, ma intendevo dire che mi legge un segnale
campionato a 16 bit e tramite un fattore di conversione (che non ho
riportato) mi da il valore della misura.
Io comunque ancora non ho risolto...e soprattutto non ho capito perché
con il Turbo C++ funziona e con gli altri no! Oggi ho provato con il
compilator del c++Builder e il risultato è diverso da quello del Turbo
C++... Evidentemente è un "errore" del Turbo C...però a me
quell'errore finché non capisco che succede fa comodo.
Grazie.
Ciao
Vas
vas "at" 
libero.it
Newsgroup: it.comp.lang.c++
Titolo: significato di "new T[]"

Salve,
facendo un po' di prove con la sintassi del C++ ho fatto un po' di
ragionamenti ma non capisco una cosa...
int *i = new int;    //questa riga compila
int *j = new int[];    //compila anche questa, sembra che le [] non
cambino nulla
int (*p) [3];    //p è un puntatore a 3 elementi di tipo int
p = new int[3];    //NON COMPILA, error C2440: cannot convert from
'int *' to 'int (*)[3]', quindi 'new int[3]' torna un int*
p = new int[][3];    //QUESTO INVECE COMPILA: MA LE [] NON ERANO
ININFLUENTI??? che cosa vuol dire 'new int[]' ???
Grazie,
Enzo

 cambino nulla
http://www.cplusplus.com/reference/std/new/operator%20new/
http://www.cplusplus.com/reference/std/new/operator%20new%5B%5D/
new alloca spazio per oggetto, new[] per un array di oggetti.
Pleg

 ININFLUENTI??? che cosa vuol dire 'new int[]' ???
Non so quale estensione il tuo compilatore stia utilizzando, ma di nuovo 
si tratta di una istruzione illegale secondo lo standard.
Questo è un programma di esempio che potrebbe aiutarti a capire come 
funziona questa storia; conta che, per definizione, "sizeof(char) == 1":
//-------
#include <iostream>
using namespace std;
int main() {
     // puntatore ad un array di 3 char
     char (*p)[3];
     // array di 3 char con durata di vita automatica
     char arr[3] = {42, 55, 78};
     // assegna l'indirizzo di arr a p
     p = &arr;
     // puntatore ad un array di 3 char
     char (*dyn_p)[3];
     // crea un "array contenente un array di 3 char"
     // con durata di vita dinamica
     // e assegna il suo indirizzo a dyn_p
     dyn_p = new char[1][3];
     // tutta la memoria dinamica viene deallocata automaticamente
     // all'uscita da main(), quindi la seguente istruzione
     // è superflua, ma dato che ci sono la scrivo comunque
     delete[] dyn_p;
     // stampa "sizeof(*p) == 3"
     cout << "sizeof(*p) == " << sizeof(*p) << endl;
     // stampa "sizeof(arr) == 3"
     cout << "sizeof(arr) == " << sizeof(arr) << endl;
     // stampa "sizeof(*(new char[1][3])) == 3"
     cout << "sizeof(*(new char[1][3])) == "
          << sizeof(*(new char[1][3])) << endl;
     // stampa "sizeof(new char[1][3]) == 4"
     cout << "sizeof(new char[1][3]) == "
          << sizeof(new char[1][3]) << endl;
     // (stampa un 4 perché gli indirizzi nel mio compilatore
     // sono immagazzinati in 32 bit e 1 char vale 8 bit,
     // quindi 32 / 8 = 4)
     return 0;
}
//-------
-- 
  FSC - 
http://userscripts.org/scripts/show/59948
 
http://fscode.altervista.org
 - 
http://sardinias.com
Newsgroup: it.comp.lang.c++
Titolo: Capacità dischetti

 Paolo Mugnaini
Forse mi sbaglio ma il buco sul dischetto, mi pare che non sia quello che
ti interessa.
Mi scuso se non ti ho risposto prima ma è solo da pochi giorni che sono
connesso a questa lista.
Io programmo in VB3 Pro eventualmente traduci le istruzioni e librerie a
tua necessita'.
(general)
Declare Function DiskSpaceFree Lib "SETUPKIT.DLL" () As Long
Sub diskfree ()
   Dim free_space& ' Holds number of bytes returned from DiskSpaceFree().
   ChDrive "c:"    ' Change to the drive you want to test.
   free_space& = DiskSpaceFree()
   form1.Label1 = Format(free_space&, "#,##0") ' per visualizzare lo spazio
disponibile in migliaia cioe' : 10.000.000
End Sub
a me serve allo scopo
Spero di esserti stato d'aiuto 
Fammi sapere se è cio che ti serve
ciao marco 
icv...@box1.tin.it

connesso a questa lista.
Scusa se ti rispondo adesso: sono appena tornato dalle vacanze. A me
servirebbe proprio sapere quale e' la capacita' di un dischetto, non
calcolarla. Ovviamente potrei utilizzare il tuo algoritmo e
calcolarmela da solo, ma posso farlo solo per per 720 e 1.44. Mi
mancano i 360, 1.2 1.7 e 2.88.
Ciao,
Paolo
Newsgroup: it.comp.lang.c++
Titolo: che compilatore è?

Tempo fa ho usato un compilatore per windows per scrivere un programma in c
(estensione .c). Per lanciare il programma c'era un punto esclamativo (rosso
mi sembra) nella
barra in alto ed il programma veniva eseguito in una finestrella dos che
veniva chiusa alla pressione di un tasto. In basso c'era un area con i
messaggi e gli errori/warning. Di che compilatore si tratta?
Grazie a tutti.

Io VC++ 6.0 ed ho scoperto che si comporta come dici tu, anche se preferisco
usare i tasti di scelta rapida :-)

Newsgroup: it.comp.lang.c++
Titolo: puntatore a funzione

Volevo fare un puntatore a funzione
int (* myPunt)(char *myWord);
myPunt = strlen;
In C mi funziona, in C++ mi da errore:
cannot convert from 'size_t (__cdecl *)(const char *)' to 'int (__cdecl
*)(char *)'
This conversion requires a reinterpret_cast, a C-style cast or
function-style cast
ho provato a fare al conversione esplicita ma nn funziona cmq. Chi mi aiuta?
Grazie :)


Il problema sta nel fatto che se utilizzi una funzione di libreria devi
stare attento a come essa è implementata:
size_t strlen(const char *).
Quindi:
#include <cstring>
#include <cstdlib>
#include <cstdio>
size_t (* myPunt)(const char *myWord);
int main()
{
    char *myWord = "miaParola";
    size_t cont;
    myPunt = strlen;
    cont = myPunt(myWord);
    printf("il numero di caratteri di myWord è %d\n",cont);
    exit(0);
}
 
Ciao.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 wrote in message
news:80Z181Z52Z5Y10...@usenet.libero.it...


...

http://www.lucky7.it/forum
 
dai che facciamo due chiacchere!!!!!!!!!

...

http://www.lucky7.it/forum


Newsgroup: it.comp.lang.c++
Titolo: (povero neofita) input da file

Scusate ragazzi non c'è qualche anima pia che potrebbe farmi un semplice
esempio di lettura da file utilizzando
<fstream.h>
ifstream in;
e l'operatore >>
(in>>.....>>...;)
a me capita chemi sovrascrive il file originale.(prova.txt)
e poi non legge nulla
Mi interessava controllare che il file esistesse.
Grazie a chi vorrà aiutarmi.

 Mi interessava controllare che il file esistesse.
Non si puň col C++ standard. Il massimo che puoi fare č vedere se te lo
ha aperto.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to
war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

 ha aperto.
Non e' la stessa cosa?


No. Il file potrebbe esistere ma non poter essere aperto per altri
motivi (già aperto in modalità esclusiva, etc.).
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
Newsgroup: it.comp.lang.c++
Titolo: Help moduli C linkati a programmi C++

Salve a tutti ho un grosso interrogativo da porre
spero che qualcuno sappia rispondermi e spero di rendere compresibile il
problrma
Allora io ho un programma in c++ che deve (vedi sub) linkare dei moduli
C
quiesto e' possibile aggiungendo prima e dopo i prototipi le segueti
cose
#ifndef PIPPO_H
#define PIPPO_H
.
.
.
#ifdef __cplusplus
extern "C" {
#endif
int func_1 (...)
int func_2 (...)
#ifdef __cplusplus
}
#endif
.
.
.
#endif
questa cosa e' standard e funzionante ma ho incontrato grossi problemi
quando una le funzioni
prendono come parametri altre funzioni
esempio
pippo.h
.
.
.
#ifdef __cplusplus
extern "C" {
#endif
int func_1 (int , int (func) (int , int));
int func_2 (...);
#ifdef __cplusplus
}
#endif
.
.
.
pippo.c
.
.
.
int func_1 (int var , int func (int , int))
{
    int i , j;
    i = 10;
    j = 5;
    if (var = 1)
        func (i , j);
    return 0;
}
.
.
.
quando vado a compilare una cosa simile mi dice che :
Warning: function int(int*,int,int,int*,int(*)(int,int,int*,int,void*))
overloads extern "C" int(int*,int,int,int*,extern "C"
int(*)(int,int,int*,int,void*)) because of different language linkages
quancuno sa darmi qualche consiglio ?
ciao
 Andrea

 int func_1 (int var , int func (int , int))
Non stai definendo la stessa func_1 che avevi dichiarato. Stai facendo un
overloading e definendo un'altra funzione. Quella che avevi dichiarato prendeve
un int e un puntatore a funzione C che prende due int e ritorna int. Quella che
stai definendo ha come secondo parametro una funzione C++ che prende due int e
ritorna int.
Puoi risolvere la cosa in due modi. Definendo correttamente la funzione con:
int func_1 (int var , extern "C" int func (int , int))
{
    // bla bla
}
oppure definendo un apposito tipo:
#ifdef __cplusplus
extern "C" {
#endif
typedef int (*func_t) (int , int));
int func_1 (int , func_t func);
int func_2 (...);
 #ifdef __cplusplus
}
#endif
...
int func_1 (int , func_t func)
{
    // bla bla
}
--
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



 

Grazie mille  !!

 

ciao

 Andrea


 #endif
questa funziona
grazie ancora :)
Ciao Andrea

 questa funziona
Di questa ero sicuro.
