mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: COS'E' L?OVERHEAD????

COS'E' QUESTO FAMELICO OVERHEAD CHE VIENE NOMINATO TANTO SPESSO A PROPOSITO
DI FUNZIONI VIRTUALI ETC. ??
SCUSATE LA DOMANDA DA PRINCIPIANTE MA NON HO TROVATO LA SPIEGAZIONE NEI
TESTI BASE........
GRAZIE
FRANCESCO

,

Immagina di avere
class A {
  virtual int Foo1(int a);
  virtual int Foo1(int a);
  virtual int Foo1(int a);
} InstA
class B {
 int Foo1(int a);
 int Foo1(int a);
 int Foo1(int a);
} InstB
e di avere
InstA.Foo3(1);
InstB.Foo3(1);
il compilatore scrivera' qualcosa come:
// InstA.Foo3(1)
LOAD REGISTER,[InstA->vtable[2]] ; risoluzione della vtbl a runtime
PUSH THIS
PUSH 1
CALL REGISTER
// InstB.Foo3(1);
PUSH THIS
PUSH 1
CALL ClassB__Foo3  ; valore noto in fase di compilazione
Ora tutto questo ragionamento e' stato espresso in un caso
molto generale, dato che i singoli compilatori e le singole
architetture possono avere modi di ottimizzzare il look-up
delle virtyl-table ed il passaggio del puntatore this,
ma in generale occorre calcolare l'indirizzo della
funzione a partire da un indice nella virtual table.
--== Sent via Deja.com 
http://www.deja.com/
 ==--
---Share what you know. Learn what you don't.---

 wrote:
Overhead significa (se non ricordo male) sovraccarico, nel contesto
delle discussioni in cui tale parola e` utilizzata indica generalmente
un costo aggiuntivo nascosto o implicito. Ad esempio eseguire il
corpo di una funzione ha un certo costo, ma il costo complessivo
dell'esecuzione della funzione comprende anche quello necessario
ad eseguirne la chiamata (in ordine sparso: salvataggio iniziale dei registri, copia dei
parametri attuali nello stack, salto alla prima istruzione della funzione e
poi alla fine ripristino dei registri, pulizia dello stack e ritorno alla istruzione
successiva alla chiamata).. Questi costi aggiuntivi vengono solitamente indicati
come overhead della chiamata di una funzione.
Saluti,
Paolo
P.s.
  Evita di usare le maiscole, secondo la netiquette equivale a urlare!
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

 Overhead significa (se non ricordo male) sovraccarico,
No, quello è overload. Comunque il resto del messaggio è giusto.
EMG
Newsgroup: it.comp.lang.c++
Titolo: lista di adicenza c++

salve avrei bisogno di creare delle liste di adicenza per i miei
grafi.Mi spiego meglio :io ho una matrice(mat[i][j]) di soli uni e
zeri ora  uno per me rapprensenta la connessione tra l' elemento a[i]
con l'elemento b[j].
il programma dovrebbe leggere la matrice trovare gli zeri e stampare
le liste di adicenza.
es.
int matrice[][3]={0,0,1,
                        0,0,1,
                        1,1,0};
risultato
a1={3}
a2={3}
a3={1,2}
ora i problemi che sto riscontrando sono di due tipi.
1)quando ci sono due 1 su la stessa riga
2)come faccio a creare n array

atz...@gmail.com
 ha scritto:

Ho capito che a1={3} perchè è la posizione dell'1 nella riga 1, ma non 
ho capito che rappresenta. Comunque la cosa migliore per il punto 2 
sarebbe quello di allocare una "matrice" 'a' in modo dinamico.
ciao!

Newsgroup: it.comp.lang.c++
Titolo: Gioco di Carte

Qualcuno di voi ha i sorgenti in C++ del gioco di carte "sette e
mezzo" o "scopa" ? Va bene anche una versione senza interfaccia
grafica. Solo teso va più che bene.
Ok, avete capito, è per un esame...
Grazie!

 wrote in message 399ae15d...@news.inwind.it...

Tempo fa c'era stato qualcuno con la tua stessa richiesta.
La domanda che hai posto non è corretta.
Non puoi chiedere a qualcun altro di risolvere i TUOI problemi.
Almeno hai provato a scriverlo?
Comincia a suddividere il problema in sottoparti (ed il C++ aiuta molto
con il concetto di classe) e vedrai che il programma verrà fuori da solo.
Se hai dei dubbi sul C++ chiedi pure.
Manlio Perillo

Ok, avete capito, è per un esame...
Un altro 'Ingegnere italiano'....
Complimenti!
Luc.

Un altro 'Ingegniere Italiano' sono io che questo esame me lo sto a prepara
e il programma l'ho fatto!!!!
Luc <TOGL...@nip1.it-TOGLI> wrote in message
hqo1qss9dvos8g823...@4ax.com...


e il programma l'ho fatto!!!!
E l'esame di grammatica???
Luc.
-
"I numeri hanno organizzato una festa, ma l'esponenziale rimane tutto
solo in un angolo, allora si avvicina la radice e gli chiede:""Perche'
non ti integri?"" e l'esponenziale risponde:""Che importa, tanto
rimango sempre uguale""

Newsgroup: it.comp.lang.c++
Titolo: Numeri esadecimali

    Come posso convertire un numero o una stringa nella notazione
esadecimale?
    Grazie,
    Paolo

 wrote in message news:8jq3cp$n6p$1...@nslave2.tin.it...


 ha scritto nel messaggio


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

Salve, 
mi scuso per la banale domanda:
qualcuno mi sa indicare dove trovo un versione recente del DJGPP, che
non abbia la prerogativa di farmi inpazzire per configurarla?
Tnx.

 ha scritto nel messaggio
news:r60i9t495193dk3de...@4ax.com...

posta la domanda su it.comp.programmare.win32.
cmq trovi tutto il materiale su 
www.delorie.com
 .
Byez
Newsgroup: it.comp.lang.c++
Titolo: friend, template

Supponiamo di avere la classe
   template <class T>
   class A_Impl
   {
     ...
     friend T operator+(const T&, const T&);
   };
Il problema č semplice: operator+ č troppo generico e crea non pochi
problemi. La soluzione piů immediata č quella di renderlo membro di
A_Impl. In questo modo perdo la conversione automatica sul primo
parametro (che diventa *this).
Altra soluzione?
Kiuhnm

 Altra soluzione?
Un'approccio potrebbe essere l'utilizzo di SFINAE/boost::enable_if per
limitarne l'applicabilita', ma bisognerebbe avere le idee piu' chiare
sugli aspetti che vorresti limitare.
Ciao,
Nicola

 sugli aspetti che vorresti limitare.
Per una conversione automatica non ne vale proprio la pena.
Vada per l'operatore membro.
Kiuhnm

Newsgroup: it.comp.lang.c++
Titolo: Dimensione dialoghi

Salve a tutti,
  come posso creare un dialogo con delle dimensioni precise in VC 5 ?
Il mio problema è che quando edito il dialogo con l'editor di risorse
del VC, in basso a destra (piu' o meno) mi appaiono delle dimensioni
che non so a quale unità di misura facciano riferimento.
Vorrei che l'unità di riferimento fosse il "punto", cioè la stessa che
si usa per la risoluzione video (tipo 640x480 ecc...).
Help me, please......
Grazie in anticipo a chiunque mi risponda...
Bye
-------------------
mimmo....@ntt.it
-------------------

...




si usa per la risoluzione video (tipo 640x480 ecc...).
L'unita` di misura dei dialoghi e` la "dialog unit" ("DLU"),
pari in orizzontale a 1/4 della largezza media dei caratteri
nel font usato, in verticale a 1/8 dell'altezza media.  Nel
tuo programma, puoi usare l'Api GetDialogBaseUnits
per ottenere gli esatti fattori di conversione (vedi la doc
in linea, ci sono un paio di "sottigliezze") e/o l'API
MapRect per convertire un rettangolo da dialog units
a pixel per un particolare, specifico dialogo (se un
dialogo usa un font particolare, bit di stile DS_SETFONT,
la MapRect dara` comunque i risultati giusti per quel
dato dialogo, mentre la GetDialogBaseUnits ti sarebbe
di nessun ausilio).
Lo scopo del tutto e` ottenere dialog-box che funzionano
piu` o meno correttamente indipendentemente da quali
font l'utente ha scelto di usare come default nel suo
sistema -- scalando tutto sulla base delle dimensioni
del font, in pratica.
Se, per qualche ragione, vuoi violare le preferenze
dell'utente e forzare invece l'uso di font ben specifici,
contro l'esplicita scelta dell'utente di usarne altri, puoi
associare un font al tuo dialogo, con DS_SETFONT
eccetera.  L'editor delle risorse di Visual C++ non ti
aiuta in questa flagrante violazione delle "regole di
base di Windows" (regola prima: comanda l'utente,
non tu:-), ma, da programma, puoi poi fare di tutto.
All'URL: 
http://www.codeguru.com/dialog/index.shtml
troverai gran dovizie di risorse relative ai dialoghi,
compresi vari tipi di "sizable dialog", un "layout
manager per dialoghi", ecc ecc, sulla base delle
quali dovresti sicuramente potere sviluppare cio`
che desideri.
Alex











Newsgroup: it.comp.lang.c++
Titolo: Visual C++ 6.0 & Visual Studio

Salve a tutti,
dopo diverso tempo programmando sotto linux in Perl/Phyton/C/C++ ho deciso
di passare a vedere che si dice sotto win32
Scansando le API per ora , che richiedono tempo che non ho , preferirei
iniziare con le MFC.
Ora la mia domanda è : dove trovo un compilatore free che riesca a farmi
fare pratica con le MFC?
C'è qualche tool gratuito con cui iniziare?
A limite sarei anche disposto a comprare software pirata basta che posso
iniziare a fare qualcosa!!!
Per cui avre bisogno di sapere se c'è qualche risorsa gratuita scaricabile o
sa in quale collezione di
CD pirata ( n°Twilight etc. etc. ) possa trovare VC++ 6.0 o VS 6.0.
Ultima domandina: Che siti mi conviene consultare on-line per iniziare a
lavorare solo con le API Win32 senza nessun framework?
Non posso comprare libri ma ho la connessione dell'Uni e posso stampare da
lì. Mi sareste veramente d'aiuto consigliandomi i siti
da cui posso scaricare materiale valido per aquisire un buon livello di
conoscenza.
Bye ,
Jacob78
P.S.
Scusate il "leggero" OT e la richiesta "illegale" ma è solo per far pratica.
Io studio , non e posso spendere
troppo per aquisire conoscenze! (ecco perchè *ADORO* linux! ) D'altro canto
non si può ignorare troppo
quello che il mercato richiede. Non vorrei laurearmi e ritrovarmi fuori
mercato...... :)

 di passare a vedere che si dice sotto win32
Perciň vai su it.comp.programmare.win32 che č il NG adatto. Qui si parla di
C++ ISO.
Bye
Newsgroup: it.comp.lang.c++
Titolo: Ancora su allocazione dinamica...

Ciao a tutti,
quando do l'istruzione 
31      int size = 20;
32      double *Vect = new double [size][size];
il compilatore (g++) mi da l'errore: 
        main.cpp:32: cannot convert `double (*)[((size - 1) + 1)]' 
        to `double*' in initialization
Cosa ho sbagliato?
Grazie mille
-- 
C o n t e
http://digilander.libero.it/Iamyourgod
Per rispondermi togli '_78' dall'indirizzo

Allora utilizza questa forma:
double *a = new double * [size];
questa perň crea un array di "size" elementi puntatori a double; questo
significa che devi allocare per ogni elemento un'altro double:
for (int K = 0; K < size; K++)
   a[ K ] = new double[size];
per ogni elemento dell'array, allochi "size" double, ottenendo cosě l'array
bidimensionale in memoria.
Al termine ricorda di eliminare tutta la memoria:
for (int K = 0; K < size; K++)
   delete[] (a[ K ]);
delete[] (a);
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 Inviato via 
http://usenet.libero.it
-- 


 -rw-r--r--    1 gianca   gianca       5568 ago  1 14:47 inversa
e per forza !!
hai usato lo switch "-c" che serve per generare gli
oggetti da linkare con il linker (di solito detti *.o),
non gli eseguibili.
Prova con
g++ -O3 main.cpp -o inversa
naturalmente se usi delle librerie le dovrai linkare (per esempio
se usi quella matematica dovrai scrivere qualcosa tipo:
g++ -O3 main.cpp -lm -o inversa
)
ciao,
g.



con l'opzione -c ti limiti a creare un file .o che andrebbe poi linkato alla
tua applicazione. Se provi a fare un "ls" nella tua cartella
lo vedrai;
prova a togliere l'opzione -c oppure dopo che hai compilato con l'opzione -c
successivamente a fare il linking con:
g++ inversa.o
avrai a questo punto il file eseguibile ./a.out 
ciao
Newsgroup: it.comp.lang.c++
Titolo: Visibilita' in ciclo for

Col Borland C++ dopo un ciclo del tipo
void function(){
	for(int i=0; i<10; i++) {
		\/*qualcosa*/
	}
}
la variabile i è visibile solo all'interno del ciclo, e riutilizzarla
richiede unìaltra dichiarazione int i.
Invece col Visual C++ la i rimane nel campo di visibilità della
funzione anche dopo il ciclo for, e ridichiararla è un errore.
Una domanda simile era stata già postata in precedenza, e mi scuso per
questo, ma... "cosa prescrive il c++?". Il comportamento del borland è
più corretto?

Nel boschetto della mia fantasia c'è anche Antonio, che ha scritto:

Sei OT, ma comunque sappi che è un errore del compilatore del VC++.
Dovresti potere dichiarare il tuo int i ad ogni ciclo.
--
Lupin85©
Azzurranet IRC: @#afiad, @#fils, @#pokegalaxy - ICQ: 91528290
Mail: Remove PAN to contact me
- "It is not important what you believe, only that you believe." -

Dovresti potere dichiarare il tuo int i ad ogni ciclo.
Grazie. Cmque se chiedere cosa prevedi l'ANSI C++ riguardo un qualcosa
è OT, allora dovrò rivedere il mio concetto di OT... Ma il NG non
rispondeva alle problematiche circa l'ANSI C++?

 rispondeva alle problematiche circa l'ANSI C++?
whoops...
ho letto di fretta il messaggio ed avevo visto solamente vc++
sorry, oggi non ci sto con la testa


Antonio ha scritto:

'i' ha visibilità solo dentro al for, quindi il comportamento del
borland
è corretto.
Quello è un noto preoblema del Visual C++ 6 (che, è da dire,
è antecedente alla standardizzazione del linguaggio.)
Visual C++ 7 (o .NET, se preferisci) non ha più questo problema.
In ogni caso lo puoi risolvere precedendo al tuo programma la riga:
#define for if(0);else for
ciao
--
Gerolamo

#define for if(0);else for
eeehhh??!?!? e che vuol dire?!?
-- 
]\/[ad]\/[age (
www.madmagelab.cjb.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 eeehhh??!?!? e che vuol dire?!?
Ogni volta che trova un 'for' , il preprocessore lo espande
in 'if(0);else for'.
Il compilatore, quando incontra il for, lo trova sicuramente nello
scope determinato dal ramo else e quindi le variabili
eventualmente dichiarate nella riga del for si trovano
automaticamente con quello scope.
--
Gerolamo

Un po' in ritardo, ma grazie!!!! Ciao

Un po' in ritardo, ma grazie!!!! Ciao
Mi rispondo da solo per non generare equivoci:
Il mio grazie č in ritardo allte vostre tempestive risposte:
purtroppo non posso collegarmi in internet dall'universitŕ
Newsgroup: it.comp.lang.c++
Titolo: Cos'è la funzione GREP ?

Ciao a tutti, devo scrivere un programma che realizzi un sottoinsieme delle
funzionalità dell'utility grep nel sistema Win.
Mi sapete indicare cosa fa la funzione grep e le sue opzioni ?
Sapete indicarmi dove posso reperire le informazioni per poter realizzare il
mio programma ?  Se poi c'è qualcuno che vuole aiutarmi a stenderlo...ben
venga!
GRAZIE RAGAZZI !!              e-mail: 
mich...@libero.it

 venga!
Perche' riinventare l'acqua calda?  Prendi i sorgenti di grep
distrubuiti dalla Free Software Foundation (GNU grep) o da FreeBSD; e
compilali.  grep non vuole finestre o arzigogoli, solo files da
leggere; quindi il sorgente e' ANSI standard.  E nella distribuzione
trovi anche la descrizione completa, di cui ti ho dato tre linee in
precedenza.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Newsgroup: it.comp.lang.c++
Titolo: Libreria TWAIN

C'è qualcuno che sappia come accedere ai driver TWAIN per scannerizzare
delle immagini.
Ci vuole forse una libreria? Se si dove posso trovarla?
Grazie a tutti.

 
Si c'e' un toolkit con esempi e tutto il necessario per sviluppare. E' 
(era?) disponibile liberamente al sito 
http://www.twain.org
.
Antonello
-- 
// ------------------------------------------------------------
// Antonello Salvatucci
// Software Developer, Technical Writer
// LEGO A/S SPU-Darwin, Kloevermarken 120, 7190 Billund DENMARK
// 
// 
+45 75 33 22 33 ext. 5186
       antonello at digi. lego. com

Newsgroup: it.comp.lang.c++
Titolo: Linux kbhit() e conio.h

Salve a tutti, sto facendo i primi passi con linux va tutto ok tranne per
una cosa...
dove sta la libreria conio.h che in Dev-C e in Turbo C mi gestiva un sacco
di cose tra cui kbhit()  (in particolare ho bisogno di questa funzione per
capire quando è stato premuto un tasto da tastiera)
se ci sono altre funzioni e altre librerie sareste cosi gentili da farmi un
esempio e dirmi quali sono?
Grazie 1000!

 capire quando è stato premuto un tasto da tastiera)
non esiste conio.h
devi usare la libreria ncurses
Newsgroup: it.comp.lang.c++
Titolo: [OT] risposta = 42

Salve,
so di esser OT ma oggi leggendo il tutorial di Guido van Rossum su Python 
ho visto:
"  Attributes may be read-only or writable. In the latter case, assignment 
to attributes is possible. Module attributes are writable: you can write 
"modname.the_answer = 42".  " 
Non sarà diventata una caratteristica degli autori di linguaggi! :)
Bastava già "Hello World!" :)
P.S.:
Come si chiama quel libro e chi è l'autore?
C'è la traduzione in italiano?
ciao
-- 
Luigi
--
bug windows [5] = {"95", "98", "NT", "Me", "2000"};

 C'è la traduzione in italiano?
Si.
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

42 è il numero casuale per eccellenza :-) E così deve restare, come è obbligo
morale scrivere un "Hello World" ogni volta che si impara un nuovo linguaggio
di programmazione.
--
Stefano Pettini
Notary of 
www.thawte.com

 ha scritto nel messaggio
news:9ini8e$iqmk8$1...@ID-85396.news.dfncis.de...

Newsgroup: it.comp.lang.c++
Titolo: Ricavare i primi tre caratteri du una stringa

ho una variabile        char Buffer[10];     e mi servirebbero da
controllare con uno switch i primi tre caratteri . Come posso fare ?!?

 controllare con uno switch i primi tre caratteri . Come posso fare ?!?
Essere un po' più preciso no, eh?
Cosa vuoi fare? Sono tipo comandi di tre lettere? (tipo add, mov, sub)? O
cosa?
se sono comandi di tre lettere prova strcmp o stricmp e invece di usare lo
switch usa if/else if. Se no si può fare anche qualcosa di più artistico,
volendo :-)
(se vuoi qualcosa di più artistico, chiedimelo... In dieci minuti tiro fuori
qualche riga di C++ da farti accapponare la pelle :-) ) (stavo pensando a un
array di struct in cui il primo elemento contiene il comando e il secondo
l'address di una funzione da eseguire con il comando. Usi un ciclo for per
comparare il comando passato nel Buffer con l'array di comandi. Quando trovi
quello giusto, lanci la funzione connessa).
--- bye

 ha scritto nel messaggio
news:i%q0c.57191$IT2.1...@news4.tin.it...

esatto è un comando in pratica sto facendo (per imparare un po i socket in
BCB) un client FTP ! Ora da quello che piu o meno ho capito dell'array ! In
pratica cosa faresti , una struttura in cui metti un array di char da 3 per
il comando e poi l'indirizzo alla funzione che deve eseguire per quel
comando giusto ?? Se si come che tipo utilizzo per dargli l'indirizzo della
funzione ? TNX

 funzione ? TNX
Dunque... Mettiamo che la tua funzione sia del tipo
int MiaFunzione(int par1, char par2)
{
}
(la sto sparando... Probabilmente tu non avrai bisogno di questi
parametri... Se non ti servono mettici un paio di void e vivi felice)
Chiaramente tutte le funzioni dovranno avere la stessa "firma" (nel senso
che dovranno avere gli stessi parametri in ingresso e uscita)
ora:
typedef int (*firmafunzione)(int, char);
firmafunzione firma1 = MiaFunzione;
(chiaramente poi tu ci fai una bella struct del tipo:
typedef struct MyStruct_ = {
char comando[10];
firmafunzione firma;
} MyStruct;
e poi
/* sulle inizializzazioni ci andrei cauto... Le canno sempre :-) */
MyStruct comandi[] = { {"mov", funzione1}, {"cop", funzione2} };
int iNumComandi = sizeof(comandi)/sizeof(comandi[0]);

 int iNumComandi = sizeof(comandi)/sizeof(comandi[0]);
Mi pare molto piu' pratico usare una mappa:
std::map<std::string,firmafunzione> istruzioni;
Una volta riempita la mappa si puo' usare con:
istruzioni["mov"](arg);
(o giu' di li).
Ciao,
Nicola

> istruzioni["mov"](arg);
Certo, Peccato che se gli passi un comando inesistente ti faccia cose
buffe!Prima vedi se c'č, e poi se c'č lo usi (il comando).

 buffe!Prima vedi se c'č, e poi se c'č lo usi (il comando).
Se non sei sicuro puoi sempre fare
map<...>::iterator i = istruzioni.find(cmd);
if ( i != istruzioni.end() )
  (i->second)();
O giu' di li'. Resta piu' pratico che fare le cose da zero.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: [OT] vedere le dll

ciao a tutti.
è possibile vedere il codice delle dll?o le funzioni esportabili?



si
lo puoi fare con un normalissimo editor di eseguibili
cod

cod wrote:

Scusa, parli di un editor esadecimale? No perche' a quanto ne so io non
esistono decompiler c++, o forse parli di un disassembly?
--
Non sara' cosi' lamer....non sara' cosi' lamer.........

Newsgroup: it.comp.lang.c++
Titolo: Comando OR?

Salve a tutti,
Vorrei porvi una domanda, a cui penso molti sapranno rispondermi: il comando
or cosa fa di preciso?
Es.:
Io ho la funzione << void SettaQuesto(int cap); >>
Se io gli passo 2 valori << void SettaQuesto(5 | 6); >> cosa succede a
questi 2 valori?
In che modo vengono "elaborati"?
Grazie x l'attenzione.
Byezz
-----------------------------
            Ne[DR]oS
 E-mail: 
ned...@freemail.it
       UIN: 58280567
-----------------------------


E' molto semplice: il compilatore esegue prima l'operazione "5|6", poi
passa il risultato alla SettaQuesto().
Cosa succede con "5|6" ?
In binario abbiamo (il bit meno significativo è a destra):
5 = 00000101
6 = 00000110
L'operatore OR restituisce 0 solo se entrambi i bit sono = 0, quindi
"5|6" diventa:
00000111 = 7
Qunidi alla fine avresti un SettaQuesto(7);
Ciao!

 questi 2 valori?
Questo e` l'operatore |, lo "or inclusivo bit per bit".  5 | 6 vale 7.
Alex

 Ciao!
Byez

 Alex
Byezz

 farne un dramma..
Nessun dramma.  Ma se non usi la terminologia corretta, il
C++, che gia` e` comunque complicatissimo, diventa praticamente
impossibile da capire e discutere.
Alex

Se io gli passo 2 valori << void SettaQuesto(5 | 6); >> cosa succede a
operator|() esegue or bit a bit, ovvero
le rappresentazioni binarie di 5 e 6 sono rispettivamente
101
110
operator|() produce
111
cioe` 7
Paolo
Newsgroup: it.comp.lang.c++
Titolo: Vorrei mettere in circolazione il codice

Salve,
Un po' di tempo fa ho intrapreso lo sviluppo di un'interfaccia per 
Windows3 che lo rendesse simile alle interfacce derivate dal MAC. Il 
progetto e' andato avanti per un certo periodo producendo quello che 
secondo me e' gia' un buon risultato, un launcher abbastanza diverso 
dai soliti.
Tuttavia manca ancora un po' perche' sia ultimato (sebbene le basi 
siano state messe), l'idea iniziale era quella di dare proprio a 
Windows3.1 un'interfaccia completa di desktop, filders  ecc.. (in 
realta' forse molti non lo sanno ma in Windows 3.1 c'erano gia' tutti 
gli elementi per realizzare le meraviglie (!?) dell'interfaccia di 
Windows95).
Purtroppo da diversi mesi a questa parte non ho avuto piu' tempo da 
dedicarci, quindi il progetto e' sostanzialmente fermo.
Pensavo allora all'idea di rilasciare il codice in circolazione per 
chi volesse continuarlo, a patto che da eventuali guadagni che 
derivassero da prodotti basati sul mio codice (solo se effettivamente 
si realizzassero naturalmente) mi pagasse una percentuale (modesta, 
del resto potete vedere che anche per il SW attuale chiedo poche 
lire), almeno per prodotti messi in circolazione prima del 1/1/2002, 
dopodiche' il codice diverrebbe PD  e che inoltre mettesse una 
citazione tipo "questo prodotto e' basato sul codice sviluppato da 
Damiano Rullo" nell'About Dialog.
Il codice contiene anche cose interessanti, tipo come si realizza un 
server di drag&drop per Windows, procedura che MS non ha mai amato 
documentare.
Inoltre l'idea attualmente portata a termine, del launcher, potrebbe 
essere portata e sviluppata, da chi e' abile, in altri ambienti, come 
Windows95/NT, OS/2 ecc.., sicuramente aggiungerebbe qualcosa di nuovo 
anche a queste interfacce.
Comunque, l'eseguibile lo trovate alla mia homepage (occhio, ci vuole 
Windows3.1 originale, senno' non funziona nel modo corretto), fatemi 
sapere che ne pensate della mia idea. Anche perche' temo che visto il 
tempo a mia disposizione l'alternativa e' lasciarlo estinguere.
Se c'e' dell'interesse magari perdo ancora un po' di tempo a 
documentarlo bene, senno' lascio perdere.
Per la cronaca cerco anche gente che abbia voglia di tradurlo e che 
sappia come commercializarlo all'estero.
-----------------------------------
--- Where did you go yesterday? ---
-----------------------------------
** Email replies to 
md7...@mclink.it
 **
visit my homepage at: 
http://www.volftp.tin.it/IT/IT/ITALIANI/rullo/index.htm
 

 documentarlo bene, senno' lascio perdere.
No perche'? Secondo me la tua trovata potrebbe integrarsi perfettamente
insieme alla wpsfw.Pensa che la tua utility gira benissimo anche con il
Winos2.....
le ho gia' provate insieme e devo dire che sono entrambe abbastanza
complementari. Bisognerebbe poter fare il drag& drop direttamente dal
desktop e magari poter opzionalmente rendere la barra fissa e poterci
vedere le icone dei programmi minimizzati in background. Sarebbe
perfetta.
Ciao. 
P.S.
UHmmmmmm...se tanto mi da tanto......
Volendo W3.11 fW potrebbe essere migliore dello stesso W95  :-)


Newsgroup: it.comp.lang.c++
Titolo: VC 5.0 e Tabelle Oracle

Volevo chiedere se esistono delle classi per la gestione delle tabelle
Oracle (scrittura, lettura, gestione ecc) .
Non ho mai usato ODBC e se fosse l'unico modo mi servirebbe qualche aiuto.
Grazie
Maurizio.

>Non ho mai usato ODBC e se fosse l'unico modo mi servirebbe qualche aiuto.
MFC ha delle classi CDatabase, CRecordset, etc. per l'accesso a database tramite ODBC. Altrimenti puoi utilizzare direttamente le API Sql... che usano sempre ODBC.
Per quanto riguarda l'accesso tramite ADO OLEDB dovresti avere penso VC 6.0 e non so se ci sono nuove classi ma penso di si.
Antonio Donatiello

 wrote in message
7lvp38$s4f$1...@fe1.cs.interbusiness.it...


 Maurizio.
Si esistono delle librerie apposite per accede col c++ a tabelle Oracle
senza dover passare da ODBC, le dovresti trovare se non erro nella home di
oracle ora verifico ...., si c'è, la posto nel gruppo spero sia utile anche
ad altri.
Si tratta cmq di una esempio per accede ad oracle 8.0.5.
L'argomento mi interessa molto...., sei hai bisogno di dritte su oracle
fatti pure sentire privatamente, cmq gradirei avere notizie se dovessi
utilizzare queste librerie, grazie :).
Cioa
Terenzio

>esempio riguardante le librerie MFC di cui mi parli? :-)
Basta che cerchi sull'help di VC CDatabase.
Antonio Donatiello

Oracle (scrittura, lettura, gestione ecc) .
Non garantisco nulla, ma prova a dare un'occhiata qui :
http://home.sprynet.com/sprynet/skuchin/otl_1pg.htm
-- 
Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass
Newsgroup: it.comp.lang.c++
Titolo: Ereditarietà e funzioni

Una domanda da principiante sull'ereditarietà.
Supponiamo di avere una classe "base" contenente un metodo che ritorna
un oggetto di tipo "base": ad esempio l'operatore +. Da "base" derivo
una classe "derived", che ha qualche funzionalità in più, ma per cui
va benissimo l'operatore + di "base". Il problema è che
base::operator+()ritorna un oggetto di tipo "base", che non posso
assegnare a un'istanza di "derived".
Ad esempio, consideriamo una classe Curva che rappresenta una curva
(spezzata) nel piano. Curva eredita da "lista di punti", e sommandovi
un "vettore" si ottiene una curva traslata:
class Curva: public list<Punto> {
    Curva operator+(Vettore const& v) const;
}
Da Curva derivo una classe Poligono, per cui è definita anche la
funzione Area():
class Poligono: public Curva {
    double Area() const;
}
Ora, Curva::operator+ andrebbe benissimo per traslare il mio poligono,
ma non lo posso usare! Come ci si comporta in questi casi?
--
== Aldo Brucale ===================

ma non lo posso usare! Come ci si comporta in questi casi?
Sposta operator+ da funzione membro a funzione globale definendolo
friend nella classe base:
class Curva: public list<Punto> {
    friend Curva operator+(const Curva&, Vettore const& v);
};
Nella classe poligono e` poi sufficiente dichiarare un operatore di
conversione (costruttore) con argomento "const Curva&".
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: utilizzo setw

ho la necessità di caricare i dati di una lista in un file, voglio
utilizzare la funzione setw per inserire degli spazzi in modo dimamico tra
un dato e l'altro in modo che il file si presenti come un listatto di facile
lettura e successivo ri-caricamento in lista ma sembra non funzionare...
istruzione
    setw(20-strlen(p->dato.campo))
Quale è l'errore??
Grazie
Ciao, Corti


Ciao,
se vuoi che il campo che mandi in stampa abbia sempre la stessa ampiezza,
sia allineato a destra e il valore sia sempre preceduto da spazi devi
decidere una volta per tutte l'ampiezza da dare a setw() come parametro.
Ad esempio:
#include <iostream>
#include <iomanip>
int main()
{
    int a = 123;
    int b = 123456;
    std::cout << std::setw(10) << a << '\n';
    std::cout << std::setw(10) << b << '\n';
}
Stamperà (per ogni 'b' assumi uno spazio):
bbbbbbb123
bbbb123456
E' questo che volevi ottenere?
 
fabiomdf
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto:

Ciao,


 ha scritto nel messaggio
news:80Z183Z74Z39Y1...@usenet.libero.it...


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

>> by }<SgRuNg>{
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 
 
http://www.icce.rug.nl/docs/cplusplus/cplusplus.html
 
http://www2.iro.umontreal.ca/~ratib/code/cpp.htm#pub

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

Non trovo un manuale che tratti di stringhe, io ho questo problema, utilizzo
c++ builder della boland:
char stringa[] = Edit1 -> Text;
mi da errore, perché?

 mi da errore, perché?
Scusa, qual'č il tuo manuale di riferimento C/C++? 
-- 
Luc.

Perche' stai cercando di usare l'operatore = tra due tipi diversi (uno e'
char[] e l'altro e AnsiString) senza averlo definito.


So bene come funziona la strlen sapientoni del mio cazzo, voglio sapere
perché non funziona questa cosa in c++ builder:
int len = strlen(edit1 -> text);

int len = strlen(edit1 -> text);
coglione, allora dovresti sapere che strlen prende un const char*
mentre edit1->Text è una AnsiString.
Se ti fossi sprecato a cercare di comprendere l'help del builder
avresti notato almeno due metodi della classe:
Returns the AnsiString converted to null-terminated character array.
char* __fastcall c_str() const;
Returns the length of the AnsiString.
int __fastcall Length() const;
quindi int len = ::strlen( Edit1->Text.c_str() )
oppure int len = Edit1->Text.Lenght();
Marco,
convinto che tu debba tornare a zappare la terra.

 allora dovresti sapere
Non rispondete ai trollazzi!!! 
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: errore con template

Compilando il seguente codice g++ mi dà l'errore:
   expected ';' before "i"
alla riga dove dichiaro i.
E.
#include <map>
#include <string>
#include <ostream>
using namespace std;
template<class T> void my_out(ostream &out, map<string,T> &list) {
   map<string,T>::const_iterator i;
   if (list.size()==0) out<<"<none> ";
   else {
     for(i=list.begin();i!=list.end();++i)
       out<<i->first<<" ";
   }
}

    map<string,T>::const_iterator i;
Aggiungi "typename":
 typename    map<string,T>::const_iterator i;
fino a una certa release GCC l'avrebbe compilato emettendo un warning.
Dalla release 3.4, dà errore e buonanotte.
Se un nome dipende da un argomento del template, viene assunto che si tratti
del nome di un membro a meno che non si renda esplicito che si tratta del
nome di un tipo mediante -appunto- la keyword 'typename'.
Max

 Aggiungi "typename":
Grazie mille! Non ci sarei mai arrivato.
E.

 nome di un tipo mediante -appunto- la keyword 'typename'.
Avrei una domanda:
come mai il compilatore fa questa assunzione e non riesce a capire che T è 
chiaramente un nome di un tipo?
Cosa crea ambiguità?
Ciao 

 chiaramente un nome di un tipo?
Il problema non è T, che è chiaramente il nome di un tipo, essendo il
parametro del template. La questione riguarda i nomi che *dipendono* da T,
ossia nomi il cui significato dipende da quello che di fatto è T. Nel
nostro caso, si trattava di "map<string,T>::const_iterator". Ora, anche se
sembra che basti guardare la definizione di map<> per sapere che
const_iterator è un tipo, questo non è in realtà vero giacché di map<>
possono (o potranno) esistere un numero qualsiasi di specializzazioni
parziali o complete, di cui non possiamo sapere nulla a priori.
Max
Newsgroup: it.comp.lang.c++
Titolo: C++ Builder 1: problema con i tabsheets!

Salve.
Programmo con C++ Builder ver. 1 ed ho un problema.
In un programma mi trovo nella situazione di dover utilizzare una form
con una finestra a più pagine (cioè una finestra con varie linguette e
facendo click su di esse, si cambia pagina).
Ho utilizzato un componente TPageControl al quale ho inserito (facendo
click col pulsante destro del mouse sul controllo dei TTabSheet).
Ora sui vari tabsheets voglio inserire dei controlli vari.
Come faccio a fare in modo che alcuni siano su di un tabsheet e altri
su di un altro. (cioè alcuni controlli visibili solo quando il
tabsheet associato è quello attivo del TPageControl).
Per il momento ho utilizzato l'evento OnChange del TPageControl ,
testando quale tabsheet fosse visibile ed mostrando i controlli ad
esso associato e nascondendo gli altri. Purtroppo la cosa mi sembra un
poco macchinosa (sopratutto se i controlli che ci sono sono molti).
Esiste un metodo alternativo? E' possibile che non siano controllate
di default dal componente TPageControl queste cose? E come faccio ad
associare automaticamente i controlli al tabsheet a cui li voglio
associare?
Scusate se sono stato prolisso, ma spero di essere stato chiaro.
Ringrazio tutti coloro che leggeranno questo mio messaggio. Grazie
Ciao

Fai click col tasto destro sul TabSheet e scegli New Page... Viene creata
una nuova TabSheet in cui includere i nuovi controlli. Per passare da una
pagina ad un'altra tramite codice usa la property ActivePage del
PageControl.
--
Byez.
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org
--------------------------------
(-: To "shut down" your system, type "WIN" :-)
(-: Windows VirusScan 1.0 - "Windows found: Remove it? (Y/N)" :-)

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

Ciao
Stó imparando ad usare il linguaggio C++, ma ho un problema.
Vorrei riuscire a compilare un file eseguibile che all'apertura visualizzi
una finestra con un breve testo e due bottoni.
Al primo corrisponde l'inserimento di due stringhe nel registro di
configurazione, l'apparizione di un messaggio di avviso e la chiusura del
programma.
Al secondo corrisponde l'abbandono diretto dell'applicazione.
Non sapendo come fare, spero che qualcuno riceva il mio S.O.S. e mi possa
inviare suggerimenti o il codice C per sviluppare il mio programma:
Ringrazio in anticipo.
 Paolo
blp...@usa.net
p.s.: non so se serve a qualcosa ma utilizzo Borland C++ 5.02




Newsgroup: it.comp.lang.c++
Titolo: HELP: number generation via time function.

// just trying to print out a random number generated by the clock..
// but something is wrong..with the random number generation 
// statement..email me at 
g.se...@mailcity.com
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main (void)
{
int ball;
char answer;
printf ("type y to go on? ");
      scanf ("%c", &answer);
while (answer == 'y')
      {
       ball =  srand ( time(NULL) ) % 36;                 // help
here!!!!!!
       printf ("the number is %d\n", ball);      
       scanf ("%c", &answer);
      }
return 0;
}

The function srand() is used to set the initial number for the random
process. You must call it only one time at first.
To get random numbers sequentially call the function rand().
Bye.
Antonio Donatiello

Newsgroup: it.comp.lang.c++
Titolo: Elevazione a potenza in termini di somma

Salve,
volevo scrivere una funzione che calcolasse la potenza del tipo x^n (con x e
n interi positivi) ma senza utilizzare il prodotto, o meglio, utilizzando la
somma per esprimere il prodotto e indirettamente anche la potenza. Ho
scritto fino ad ora 2 funzioni separate, ma non riesco a "fonderle" in una
sola. Ecco il sorgente:
#include <iostream>
int mul (int a, int b) {
 int tot = 0;
 for (int i = 0; i < b; i++)
  tot += a;
 return tot;
};
int pot (int x, int y) {
 int res = 1;
 for (int j = 0; j < y; j++)
  res = mul (x, res); // Bisogna lavorare qui...
 return res;
};
int main () {
 std::cout << pot (5, 3) << std::endl;
 return 0;
}
In pratica vorrei trovare un modo per sostituire l'istruzione
res = mul (x, res)
con il corpo della funzione mul stessa, modo da calcolare la potenza, solo
con l'utilizzo della somma. Credo che non sia difficile da fare, ma non
riesco a impostarla correttamente. Qualcuno può aiutarmi?
Grazie
--
DigitalShock

 DigitalShock

 DigitalShock


<grin>
*** Azimuth ***

 sola.
Basta espandere "inline" a mano la routine "mul" e si ottiene:
int pot(int x, int y) {
   int res = 1;
   for (int j = 0; j < y; j++) {
      int tot = 0;
      for (int i = 0; i < res; i++)
         tot += x;
      res = tot;
   }
   return res;
}
        Carlo Milanesi
Newsgroup: it.comp.lang.c++
Titolo: Valori iniziali delle variabili

Salve a tutti, in un libro universitario ho trovato questa frase: "In 
assenza di indicazione esplicita del valore iniziale, il linguaggio assume 
per esso appositi valori di default (zero per le variabili di tipo 
numerico, blank per quelle di tipo carattere)."
Ora, questo non č valido solo per le variabili statiche? O č solo in C che 
č cosě?
Grazie a tutti per l'attenzione....
Ciao.


Intende semplicemente che se dichiari una variabile senza
inizializzarla, questa viene automaticamente inizializzata ad un valore
di default, valore che credo sia diverso da compilatore a compilatore
(non sň cosa indichi lo standard in merito).
Ciao,
Cecco

 č cosě?
La frase e' sbagliata e basta.  Gli oggetti non-reference con storage
static o extern di default vengono inzializzati a zero (piu' in
dettaglio, questo vuol dire che il valore intero "zero" viene
convertito nel tipo di appartenenza); se non-POD, viene chiamato il
costruttore di default (e, se esso non e' definito, ogni membro
interno e' ancora inizializzato a zero).  Gli oggetti con automatic
storage hanno invece contenuto indefinito.  Il tutto si trova in
ISO/IEC 14882:1998 8.5.  Quindi l'inizializzazione si applica solo ad
oggetti non-auto, e anche in questo caso le variabili di tipo
carattere vengono inzializzate a '\0' e non a blank.  Anche in C e' lo
stesso.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 č cosě?
Per le statiche e per le globali. Non per le automatiche.
--
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


Esattamente come sapevo io...e non č l'unica che spara
Savy...mah, voglio vedere chi non sa niente di C e C++ come fa!
Grazie comunque...
Ciao

Newsgroup: it.comp.lang.c++
Titolo: Qualcuno conosce il C cancelletto ?

 ha scritto nel messaggio
news:93qvn4$3q9$1...@lacerta.tiscalinet.it...
Tu evidentemente *NO*, visto come lo chiami ;-)
Massimo

LOL!
C#, ovvero C sharp (si sciarp)
l'ho visto, ho provato per un po' il .NET Framework SDK
mentre continuo ad usare il "ci pių pių" aspetto VisualStudio.NET
maggiori info le trovi su 
www.visualstudio.net
--
ciao
XAERO [*]
"Se vuoi renderti conto del valore del
denaro, prova a chiedere un prestito"
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCA/CM/CS/CC/E/O d?(-) s+:-- a--->? C++++(+)$@ UL-(--) P>++ L+() E-- W+++$@
N++@ o-- K- w+++(++++)@ O--- M V? PS+++ PE-(--) Y? PGP>++ t? 5? X+ R- tv-
b+(++) DI? D++ G- e !h !r y?
------END GEEK CODE BLOCK------
Newsgroup: it.comp.lang.c++
Titolo: Difficoltà banale





Ciao ragazzi,


chi mi sa dire come mai questa funzione membro mi 
da problemi?


 


 void 
Veicolo::insali()
{
      char 
al;
      cout<<"- Alimentazione veicolo... 
D/B? ";      //se l'utente inserisce D o d voglio 
che


                                                                        
//il valore booleano alimentasione sia 
true
      cin>> 
al;
      cout<< 
endl;
      if ((al=="D")or(al=="d")) 
alimentazione=true;
      else 
alimentazione=false;
}


 


il compilatore dice:


"Iso C++ forbids compararson between pointer 
and integer"


che sciocchezza avrò fatto nel ciclo 
if?


grazie 1000 x l'aiuto 
^_^



 grazie 1000 x l'aiuto ^_^
puoi fare cosě:
alimentazione = (al == 'D' || al == 'd');
e non hai piů bisogno di if.
-- 
Pirata: "Ho parlato con scimmie piů educate di te."
GT: "Sono contento che tu sia andato alla riunione di famiglia."

 che sciocchezza avrò fatto nel ciclo if?
'if' non è un ciclo.
Max

 ha scritto nel messaggio 
news:3er1unF...@individual.net...


 ha scritto nel messaggio 
news:CjYhe.903169$b5.39...@news3.tin.it...


Per ora puoi continuare a suonare il piano ;-)
Ciao,
Nicola

 ha scritto nel messaggio 
news:1116412038.4...@o13g2000cwo.googlegroups.com...


 che sciocchezza avrò fatto nel ciclo if?
if ( (al=='D') || (al=='d') )
{
	alimentazione=true;
}
io lo farei cosi'
Ciao TD

 grazie 1000 x l'aiuto ^_^
Sostituisci or con || e metti D e d tra apici (cosě 'd' e 'D') anzichč 
tra virgolette.
Andrea Sini
Newsgroup: it.comp.lang.c++
Titolo: Aiuto ! algoritmo integrale di un vettore (quadrature)!

Salve
e' da circa un mese che ho iniziato  c++ e devo dire che e'
eccezionale!
Ho un problema . ( uso la libreria TNT per i vettori)
Ho una funzione Vector<double> myfun (const Vector <double> &h,
double x,const double &b).
Tale funzione riceve un vettore (n+1) e due double e restituisce un
vettore (n+1).
Dovrei integrare ogni elemento del vect di output di myfun rispetto a
x con quadrature.
Siano i pesi sono w[] e le ascisse sono x[] .
Chiamo myfun per la prima ascissa x[0]  e ottengo un vettore output[n
+1]
per ogni elemento di myfun  (x[0],h,b)  ,   devo eseguire
     w[0]*output[0]
    .................................
     w[0]*output[n+1]
Alla successivo iterazione chiamo myfun(x[1],h,b) e ottengo un altro
vettore output sommmato al precedente
avro quindi:
     w[0]*output[0]     +   w[1]*output[0]
    .................................
     w[0]*output[n+1]  +  w[1]*outpu[n+1]
..................................
Per l'ultimo valore di x e w  dovrei quindi ottenere un vettore che e'
la somma dei precedenti
Il problema e' che alla somma dell'elemteno precedente questo risulta
uguale a zero
Inoltre ho provato a sviluppare altri alg ma oltre ad essere errati ci
mette 1150 sec!
I punti della quadrature sono 32 ( lung x e w ) il vettore di output
e' circa 100 elementi .
Potreste darmi una mano? Devo fare circa 50 volte questa operazione
quindi vorrei un algoritmo veloce.
Per tale problema  so che con tali dimensioni dei vettori ci vuole
circa 1 sec. Possibile?
Grazie per l'aiuto

 Siano i pesi sono w[] e le ascisse sono x[] .
Non ho capito se questa myfun è una funzione che usi per sviluppare 
l'algoritmo di quadratura o se semplicemente quello che devi quadrare e' 
una funzione che si calcola utilizzando myfun.


Ciao,
grazie per il tuo aiuto.
myfun e' la funzione che devo integrare.

 myfun e' la funzione che devo integrare.
Allora non capisco tutta questa complicazione. Quello che devi calcolare 
è la somma su k di
w[k] (x[k+1]-x[k]) myfun (h,x[k],b)
che puoi calcolare facilmente con un ciclo for.
E.


Si ma myfun e' un vettore non uno scalare!

 Si ma myfun e' un vettore non uno scalare!
E' lo stesso. Il risultato sarà un vettore.
E.


Grazie mille. Solo per essere precisi nelle quadrature di gausss
hermite non si moltiplica per  x[k+1]-x[k])
Il codice gira, ma lo stesso integrale in matlab con quadv funziona
qui da risultati sballati nonstante la funzione non integrata dia lo
stesso output( il primo elemento e' >1, e dato che e' una
probabilita..)..
Non so proprio che fare!

 - Mostra testo tra virgolette -
Risolto. Grazie a tutti. VI sono davvero grato
Newsgroup: it.comp.lang.c++
Titolo: Creazione DLL

Dovrei creare una DLL con una funzione per il riconoscimento del volume
dell'HDD in c.
Ho provato a utilizzare il Visual C++ 4.0. Il mio problema fondamentale é
comunque quello della creazione della dll. Infatti ho provato a creare un
dll "stupida" con all'interno una semplice funzione di somma. Il
Compilatore crea la dll ma non riesco a importare tale funzione in Visual
Basic 4.0 32 bit (mi dice che la dll c'é ma non trova la funzione)
Comunque il codice é il seguente:
#include <windows.h>
#define EXPORT extern "C" __declspec (dllexport)
EXPORT int CALLBACK somma(int);
int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
	return TRUE;
}
EXPORT int CALLBACK somma(int ad)
{
	return ad + 1;
}
Un ringraziamento anticipato a tutti
Jury

Basic 4.0 32 bit (mi dice che la dll c'é ma non trova la funzione)
.................
................
Mi associo alla domanda.
Grazie 1000


Il problema e' causato dal C che modifica i nomi globali
aggiungendo "_" davanti al nome e delle lettere in coda a seconda
dei parametri.
Non mi ricordo esattamente come ho risolto questi problemi, ma so 
che c'entravano 3 cose:
1 - se il sorgente della DLL era .c oppure .cpp
2 - dichiarare le funzioni nella DLL come extern "C" oppure Pascal
3 - in VB dichiarare le funzioni esterne usando alias
Al momento non posso essere piu' preciso, ma ricordo bene che
a furia di provare alla fine ci sono riuscito!
Saluti.
Luigi

...
