mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: quesito c++

Ciao a tutti, mi sono appena imbattuto nel seguente problema e non ne vengo 
a capo:
Il problema è che uso (non dipende da me) un codice misto c/c++.
Dispongo di una struttura:
struct Parameters {
        const char * robot_name;
//      [..etc etc..];
        void (* getPosition) ( float *, float *, float * );
        void (* setPosition) ( float, float, float );
};
Dispongo inoltre di una classe (diciamola ClasseA):
class ClasseA {
public:
        /* costruttore ed altro */
        void GetPos( float * x, float * y, float * z);
        void SetPos( float x, float y, float z);
        /* altre cose pubbliche */
private:
        /* altre cose private */
}
Definisco una istanza della ClasseA:
        ClasseA classe_a();
Definisco e riempio la struttura:
        Parameters myParams = (Parameters) {
                "netra",
            /* etc etc */
                NULL,
//il null ovviamente lo accetta
                & (classe_a.GetPos)
//**questa riga da problemi**
        }
Nella compilazione di quella riga, ottengo il seguente:
kern.cpp:46: ISO C++ forbids taking the address of a bound member
function to form a pointer to member function
kern.cpp:46: cannot convert `void (ClassA::*) (float *, float *,
float *)' to `void (*) (float *, float *, float *)' in initialization
make: *** [.obj/kern.o] Error 1
Allora provo a sostituire la riga incriminata con:
        (void (*)(float *, float *, float *)) & (ETpioneer.GetPos),
di nuovo errore ed il messaggio cambia di poco:
kern.cpp:46: ISO C++ forbids taking the address of a bound member
function to form a pointer to member function
kern.cpp:46: converting from `void (ETPioneer::*) (float *, float *,
float *)' to `void (*) (float *, float *, float *)'
make: *** [.obj/kern.o] Error 1
Ora non so dove sbattere la testa...
-che mi consigliate?
-come potrei risolvere?
Grazie 1000 in anticipo,
Enrico Ros
 Università Degli Studi Di Padova
 
http://www.dei.unipd.it/~rosenric

  
http://www.dei.unipd.it/~rosenric
credo proprio il problema stia nel tentativo di ottenere l'indirizzo di una
funzione membro, e il compilatore ti segnala che da norme ISO questo non è
consentito.
~~
artemis.alpeia
Newsgroup: it.comp.lang.c++
Titolo: help OpenGl

Sto cercando si imparere a programmare e vorrei sapere dove posso
trovare del materiale per opengl in italiano.Mi va bene anche solo un
consiglio!!
Vi ringrazzio anticipatamente !!!

In italiano non sò, non sono riuscito a trovare nulla, in inglese quanto ne
vuoi c'è pure la ML ufficiale con tutti i coders sviluppatori di giochi.
leo
N.B. per sottoscrivere la ML manda un messaggio a 
List...@fatcity.com
 con
il solo e ripeto solo seguente contenuto :
SUBSCRIBE OPENGL-GAMEDEV-L

consiglio!!
Prova ad esempio:
 
http://hermes.dis.uniroma1.it/~schaerf/ig/opengl/index.html
Alex
--
 ____    Alex Martelli, Bologna, Italia -- email: 
al...@magenta.com
 \SM/___                                 
http://magenta.com/~alex
  \/\bi/     You never know what is enough unless you know what
     \/          is more than enough.

Newsgroup: it.comp.lang.c++
Titolo: undefined symbol .... in module

Qualcuno può dirmi che cosa impedisce al borland c++ ver. 5.2 di fare quello
che faceva regolarmente la versione 3? cioè linkedit di più funzioni
richiamate da più file?



Se il programma e' a 16 bit, allora il problema e' del compilatore.
Prova: Project Options -> Compiler -> Compiler Output -> contrassegna
il checkbox "Generate ComDefs". E ricompila tutto.
Bye.
Newsgroup: it.comp.lang.c++
Titolo: [Forse un po' OT] Funzioni seno e coseno

Ciao, spero di non essere OT, ma non capisco se è un problema di compilatore
o se è qualcosa che non mi è chiaro del tutto.
Sarò breve, è un bel po' di tempo che non programmo e ora uso wScite e
compilo con Borland 5.5.
Sto creando un algoritmo che svolge la FFT (Fast Fourier Transform) e ho
bisogon di lavorare con i numeri complessi, con il seno e il coseno o cmq
con l'elevazione a potenza con base neperiana.
Questo non c'entra molto, il problema strano è che (dopo aver trovato strani
errori numerici) mi sono creato un valore per PI Greco e ho scoperto con mia
sorpresa che il comando "cout << cos(PI)" mi dà giustamente il valore 1 ma
allo stesso modo "cout << sin(PI)" non mi dà il valore aspettato, cioè zero,
ma un valore molto piccolo... ma che sballa tutto.
Se poi vado a trovare il valore del cos(PI/2) ovviamente non dà zero ma un
altro valore strano.
Ho il dubbio che ci siano altri errori nel calcolo di seno e coseno perchè
se con un trucchetto metto io a zero il seno e il coseno, quando serve, cmq
ricevo poi valori errati.
Mi sapete aiutare??
Grazie infinite!
Filippo

 altro valore strano.
immagino vicino a zero anche quello. Forse è perchè per ottenere i valori di
sen e cos usa gli sviluppi in serie di taylor e li tronca troppo presto.
Ciao
Andrea

 ma un valore molto piccolo... ma che sballa tutto.
Prova ad usare una cosa del tipo:
const pi=4*atan(1);
Bye
Antonio


Purtroppo temo dipenda dall'approssimazione con cui sono memorizzati i
numeri floating-point. Può darsi, comunque, che tale approssimazione
(magari utilizzando i long double) sia sufficiente per i tuoi calcoli e
quella piccola differenza sia trascurabile.
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

 Grazie infinite!
Prego,
Ste

Newsgroup: it.comp.lang.c++
Titolo: [FRIEND???] prob che nn capisco

sto creando questa classe:
class Multimap {
   private :
     class ListaKey {
       public:
         ListaKey();
         ListaKey(const Key&, ListaKey*);
         Key info;
         ListaKey* next;
     };
     ListaKey* first;
.....
};
nn importa a che serve...il prob e' che se dichiaro questo metodo
     bool insert (int k, int v) {   //tipi da sostituire nel template
       Multimap::ListaKey* punt=Multimap::first;
     };
mi dice
"Multimap::ListaKey is private within this context"
grazie per ogni consiglio...
P.S.: penso sia un prob di friend...ma nn riesco a capire..

 
la funzione insert non è dichiarata all'interno di Multimap, quindi non 
il compilatore non la considera una funzione membro quindi ListaKey è 
inaccessibile, essendo dichiarato private.
-- 
MSN: sirpsycho_78 -at- hotmail dot com
"Arditi, com'altro nomare questi baldi fiori del regime che osarono 
porre un imperativo categorico tra le sabbie bolsceviche di Marte."
Newsgroup: it.comp.lang.c++
Titolo: C e Gui

 
 
Ci sono delle librerěe, QT? o da quello che sň, anche le wxWidget?
chč perméttono di avere un ambičnte Ide, dove poter  creare un
la parte Gui del programma in C, in modo sémplice e immediato?
 
 
Ciao
 
 
 

 
 
Sì, quelle che hai citato, più aggiungerei anche le GTK.
Che io sappia hanno tutti un qualche tipo di applicazione per lo sviluppo RAD
di GUI (e sicuramente qui troverai anche qualche fan di Vala).
Quindi dipende solo da te!
Ciao!

 la parte Gui del programma in C, in modo sï¿œmplice e immediato?
 
Le librerie GUI e gli IDE sono concetti diversi.
Si possono scrivere programmi che usano usare librerie GUI senza usare 
un IDE, usando un editor e il compilatore da riga di comando.
E, d'altra parte, si puï¿œ usare un IDE come Visual Studio per scrivere 
programmi per console, che non usano librerie GUI.
Ovviamente l'IDE stesso ï¿œ stato scritto usando una libreria GUI, ma 
questo non riguarda il programmatore che usa tale IDE.
Un ambiente di sviluppo integrato che permette di creare programmi GUI 
in modo semplice e immediato si chiama "strumento RAD" (Rapid 
Application Development). Il problema dei RAD ï¿œ che generano sistemi non 
molto efficienti (anche se questo ï¿œ un problema solo sui sistemi 
embedded) e poco manutenibili.
Solitamente, se uno sceglie il linguaggio C ï¿œ perchï¿œ vuole invece 
generare un sistema molto efficiente e anche discretamente manutenibile.
Pertanto non ha molto senso usare un RAD per il linguaggio C.
O usi un RAD per un linguaggio di livello piï¿œ elevato (come Delphi, 
Visual Basic, Python, MS Access), o usi il C senza usare un RAD.
Se hai bisogno del C per fare operazioni particolari o per riutilizzare 
del codice giï¿œ esistente, ti conviene incapsulare il tuo codeice C in 
una DLL (o shared library), scrivere il programma principale, dotato di 
interfaccia-utente grafica, in un altro linguaggio, con o senza RAD, e 
richiamare il tuo codice C dal programma principale.
 
Perchï¿œ scrivi lettere accentate anche in mezzo alle parole? In italiano 
normalmente si accenta solo l'ultima lettera.
 
-- 
 
Carlo Milanesi
http://carlomilanesi.wordpress.com/
 

 normalmente si accenta solo l'ultima lettera.
 
e una deformazióne grammaticale.
 
 
Ciao
 
 
 
 


 
Dovresti postare su un gruppo di C, questo ï¿œ C++
Comunque supponendo che la piattaforma sia Linux (anche windows supporta 
le QT) basta che installi l' IDE di KDE
Ma le QT non sono per il C++ ?
Esiste anche una versione per C ?
Newsgroup: it.comp.lang.c++
Titolo: swap di una lista, parere

ciao
avendo la lista fatta così:
struct nodo{
	int i;
	struct nodo * next;
}
devo scrivere una f che scambi gli elementi a due a due ad esempio:
1->2->3->4  diventa 2->1->4->3
com'è questa soluzione?
struct nodo * swap(struct nodo *l){
	while(l->next!=NULL){
         	int temp = l->next->n;
         	l->n = temp;
         	l->next = l;
         }
}
grazie!
-- 
there are no numbers in my email address

giff ha scritto:
ovviamente quella funzione è sbagliata....
questa invece potrebbe funzionare?
struct node * swapPairs(struct node *l){
     int temp, int = 0;
     struct node* head = l ;
      for( ; l != NULL; l = l->next ) {
         if(i%2){
                    temp = l->n;
                     l->n = l->next->n;
                     l->next->n = temp;
              }
         i++;
         }
     return head;


 }
Non compila per via di un paio di errorrucci, comunque a occhio sembra 
funzionare.
Una nota: correggimi se sbaglio, ma la mia impressione e' che tu stia 
svolgendo un esercizio di scuola.
Se e' cosi', sei sicuro che una soluzione di questo tipo sia 
accettabile, sembra piuttosto che stai cercando di girare attorno al 
problema.
Mi spiego meglio: tu stai invertendo gli elementi prendendo il valore 
del campo N di due nodi consecutivi e li inverti, lasciando inalterata 
la catena di puntatori next.
Di solito questo tipo di esercizi serve per fare pratica sulla 
manipolazione delle catene di puntatori, quindi ci si aspetta che nella 
soluzione tu modifichi i puntatori che formano la catena, non il 
contenuto dei nodi.
Se ho frainteso la situazione, scusami !
ciao
Giacomo

 contenuto dei nodi.
Non so se il motivo di essere di questo esercizio sia quello che dici 
tu, è probabile. Era un test per vedere come io avrei risolto il 
problema. Ora, da quello che mi dici mi pare chiaro che questa non è la 
soluzione migliore, in quanto immagino che lo scambiare i puntatori 
sarebbe stato parecchio più efficiente...
grazie, ciao

 sarebbe stato parecchio più efficiente...
Si, perche' nel caso di strutture piu complesse, scambiare il contenuto 
al posto dei puntatori e' piu' costoso.
Poi ci sono dei casi in cui non puoi proprio farlo, perche' potrebbero 
esserci altri puntatori che puntano ai nodi della tua lista e scambiare 
i dati fa casino: pensa per esempio ad un puntatore all'elemento piu' 
grande. Nel tuo esempio punta all'ultimo nodo. Se scambi i puntatori 
modifichi l'ordine della lista ma il puntatore esterno continua a 
puntare al nodo piu grande, se scambi i contenuti, devi alterare anche 
quel puntatore esterno, ma la tua funzione non puo' (e non deve) tener 
conto di tutti i possibili puntatori esterni alla lista.
ciao
Giacomo
Newsgroup: it.comp.lang.c++
Titolo: Container Vector ed ereditarietà

Ho creato una classe ClasseA e avevo un bisogno di un vettore di oggetti di
ClasseA e cosě ho usato un Vector<ClasseA>. Ora perň ho creato una classe
ClasseB derivata di ClasseA: come faccio a creare un vettore che mi permetta
di metterci sia ClasseA e ClasseB (la domanda mi sembra sensata visto che
sia su ClasseA che su ClasseB devo eseguire le stesse operazioni)?
Grazie e bye
Antonio

 ha scritto nel messaggio
news:Oa91a.4057$uA5....@tornado.fastwebnet.it...

crei un vettore di puntatori a ClasseA
Pela

> crei un vettore di puntatori a ClasseA
e pi gli iterator su questo vettore come li uso? potresti farmi un esempio
per favore? grazie
Bye
Antonio

 ha scritto nel messaggio
news:_x91a.4074$uA5....@tornado.fastwebnet.it...

vector<ClasseA *> vettore;
[riempio il vettore con i puntatori agli oggetti]
vector<ClasseA *>::iterator it;
for(it=vettore.begin();it!=vettore.end();it++){
    (*it)->funz();    //chiamo la funzione funz dell'oggetto
                        // che può essere di tipo ClasseA o anche ClasseB
}
---
Pela


naturalmente le funzioni devono essere definite virtual altrimenti chiami
solo quelle di ClasseA e mai quelle ridefinite in ClasseB
---
Pela

 }
Grazie, poi ci ho pensato e temevo di sapere la risposta
Bye
Antonio
Newsgroup: it.comp.lang.c++
Titolo: Problema di un principiante

Compilando in C++ Builder 3.0 questa unita ho ottenuto in fase di
compilazione 2 errori che mi dicono che
real()  e randomize non sono metodi della classe Random . Perchè ?
FILE Random.h
const unsigned long mult_ = 234567821 ;
const unsigned long mod_ = 4294967295 ;
const int max_ = 
2147483647
 ;
class Random {
 public :
    Random() ;
    Random(unsigned long seed);
    double real();
 private :
    unsigned long seed_;
    void randomize();
};
FILE Random.cpp
#include <iostream.h>
#include <limits.h>
#include <time.h>
#include "Random.h"
Random :: Random() {
              seed_ = time(NULL);
              }
Random :: Random(unsigned long seed) : seed_(seed) {
              randomize(); }
Random :: real() {
              randomize();
              return double(seed_)/double(mod_);
              }
Random :: randomize() {
              seed_ = (mult_*seed_ + 1)%mod_;
              }
Vi ringrazio anticipatamente per l'eventuale vostro interessamento.


mi sembra...
1) real() e' dichiarato double ma e' definito void: devi aggiungere
double prima di Random::real()
2) randomize() e' definita dopo la definizione di Random::Random.

 Random :: randomize() {
void Random :: randomize() {
EMG

 real()  e randomize non sono metodi della classe Random . Perchè ?
Perche` nella definizione hai dimenticato il tipo di ritorno.
void Random::randomize() { ecc, ecc.
Tu hai omesso il 'void'.
Alex

 2) randomize() e' definita dopo la definizione di Random::Random.
Questo non dovrebbe comportare niente.
EMG

2) randomize() e' definita dopo la definizione di Random::Random.
Questo non dovrebbe essere un errore...
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

int.
In C, non in C++
--
 (o-  | c:\> win2000patch001.exe
 //\  | This Microsoft(c) patch fix all bugs present. All rigth reserved.
 V_/_ | Insert Linux boot disk to continue ... loading kernel ...
http://pinguin.linuxbox.com
 r.salmaso(at)
flashnet.it

int.
Mi pare che lo standard C++ abbia eliminato questo retaggio del C...

Newsgroup: it.comp.lang.c++
Titolo: Lettura file

Scusate come faccio (con quali istruzioni) a leggere un record completo 
da un file di testo (fino al CR/LF)????
Grazie
______________________________________________________
Get Your Private, Free Email at 
http://www.hotmail.com
--
Posted from [193.76.127.8] by way of 
f126.hotmail.com
 [207.82.251.5]
via Mailgate.ORG Server - 
http://www.mailgate.org

da un file di testo (fino al CR/LF)????
In C++ Standard, puoi farlo con la funzione getline (o con
il membro getline dell'istream, se per qualche misteriosa
ragione vuoi leggere la riga in un array di caratteri invece
che in una stringa standard).
Nota che il CR e l'LF sono "compattati", come in C, in un
singolo carattere di fine-riga ('\n') in input (e se emetti lo
stesso '\n' in output, si "espande" di nuovo a CR+LF);
cio' e' indispensabile per la portabilita' fra ambienti in cui
le righe dei file di testo sono terminate da CR+LF (Dos),
quelli in cui lo sono dal solo LF (Unix), quelli in cui lo sono
dal solo CR (Mac, se non sbaglio), e mille altre diavolerie
ancora (in VMS, se non ricordo male, c'e una mezza
dozzina di possibilita'...!-).
Se per qualche ragione non vuoi o non puoi utilizzare il
C++ Standard, lo stesso risultato e' possibile usando le
librerie che il C++ "eredita" dal linguaggio C, ma per
questo, se occorre, ti consiglio di ripetere la domanda
sul gruppo apposito, it.comp.lang.c.
Alex

Newsgroup: it.comp.lang.c++
Titolo: librerie grafiche

Ho iniziato a programmare in C++ da poco, e non riesco a trovare info
e materiale sulle librerie grafiche standard del C++, se esistono.
Qualcuno sa dirmi qualcosa?
Grazie

 e materiale sulle librerie grafiche standard del C++, se esistono.
Non esistono, devi usare librerie esterne. Se per grafiche intendi per 
"fare le finestre" dà un'occhiata a 
http://www.wxwindows.org
.
Newsgroup: it.comp.lang.c++
Titolo: aiuto con i template in C++

 secondo una double una rational o un complex????
Se il tuo problema è soltanto l'assegnamento o l'inizializzazione è
sufficiente che le classi in questione dispongano di un opportuno
operator=(int) o (nel caso dell'inizializzazione) di un ctor che accetti
un int, che la tua classe template potrà adoperare senza che
l'implementazione debba conoscere esplicitamente qual è il tipo su cui sta
operando.
Se invece per qualche ragione hai bisogno che l'implementazione di, ad es,
Matrix<Complex> sia profondamente diversa da quella generica, puoi
ricorrere a una "specializzazione". 
Quindi, dopo aver definito la classe template più generica:
 template< class T > class Matrix { /*  */ }
puoi preparare una versione specializzata appositamente per Complex
 template<> class Matrix<Complex>  { /*    */  }
Maxim

Salve a tutti!
sto progettando una classe template Matrix che voglio poter istanziare con
classi double, complex e rational (da me definite)
del tipo Matrix<double> A; se voglio riempire la mia matrice A di double
oppure Matrix<Complex> B etc.
il mio costruttore deve inizializzare a 0 gli elementi della matrice
tuttavia questa procedura va fatta in modo diverso a seconda di quale classe
(double, complex o rational) io abbia usato di volta in volta!
Il problema è: come faccio a scrivere nel codice del costruttore delle
istruzioni che facciano riconoscere al programma se l'oggetto è istanziato
secondo una double una rational o un complex????
es.:
template <class X>
class Matrix<X> {
public:
...
private:
...
};
template <class X>
Matrix<X>::Matrix(void) {
if (X == double)  fai qualcosa                <== COME FACCIO?
if (X == complex) fai qualcos'altro
}
spero che mi possiate aiutare
grazie a tutti!
ciao
--
Massimo Di Casola
Email: 
max...@iol.it
"...non amo che le rose
che non colsi. Non amo che le cose
che potevano essere e non sono state."
(Guido Gozzano)

 tuttavia questa procedura va fatta in modo diverso a seconda di quale
classe
Assegna ad ogni elemento 0... non e' una presa in giro! double/float/complex
hanno un operatore di assegnazione che e' in grado di assegnare 0. Basta che
nella tua classe rational sia presente un rational(double d) oppure
operator=(double d) (penso che ci sia gia'...) e quindi nel tuo costruttore
fai un bel loop in cui fai m_Elements[i][j]=0.;
semplice, no? Ovviamente, se mai qualcuno crea una classe che non supporta
tale assegnazione non la potra' usare dentro la tua matrice, ma questa e'
un'altra storia...
Ciao!!!!
Alessandro Coppo
a.c...@iol.it
www.geocities.com/alexcoppo/
Newsgroup: it.comp.lang.c++
Titolo: [newbie] manipolazione stringhe con BSTR

Ho la necessità di lavorare con variabili BSTR, ma le funzioni tipo
strlen o strcat non funzionano. Come devo fare? Grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 strlen o strcat non funzionano. Come devo fare? Grazie.
Sei OT.
PS: vedi wsclen,wcscat
-- 
Luc.

 strlen o strcat non funzionano. Come devo fare? Grazie.
Sei OT.
PS: vedi wcslen,wcscat
-- 
Luc.

E perché sono OT? Non stiamo parlando di C++? Cosa mi sfugge?


 E perché sono OT? Non stiamo parlando di C++? Cosa mi sfugge?
Perche' BSTR non e' un tipo standard del linguaggio, bensi' (presumo) un
invenzione Microsoft. Per questo tipo di domande chiedi su
it.comp.programmare.win32 .
Ciao,
Nicola


Ah! Cado dal pero. Grazie dell'info.


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

Vorrei sapere, qual'è il comando in c /c++ equivalente al comando shell del
qbasic, ad esempio, come faccio da un mio programma ad eseguire il comando
"cd\" oppure a lanciare un progamma come "
xtgold.com
"?
                            Grazie, Marcello

qbasic, ad esempio, come faccio da un mio programma ad eseguire il comando
In C++ c'è il comando system della libreria stdlib.h
Il prototipo è int system(const char* comando).
Un esempio:
system("dir");
esegue il comando dir del command.

Newsgroup: it.comp.lang.c++
Titolo: Chi sa come ottimizzarlo?

Ciao, dai precedenti so che posso contare sul vostro aiuto.
Devo ottimizzare un codice, cercando di usare meno memoria possibile,
d'altro canto sono costretto
ad usare 2 vettori dinamici molto grandi, inoltre uno č un vettore di
struttura a 3 campi: A, B, C.
Vorrei cercare di eliminare uno dei campi della struttura. Avete qualche
idea su come poter fare il
controllo seguente con una variabile in meno? Io non sono riuscito a pensare
a nient'altro, magari
qualcuno con la mente un pň piů sgombra...!
Grazie 1000.
main
{     inizializzo A=0, B=0, C=0;
       for( condizione)
         { .
           .
           .
           if  (A=6) OR ((C=1)&&(B<6))  C=1;
           else if  (B=6) OR ((C=0)&&(A<6))  C=0;
           .
          if (C=0) faccio qualcosa;
          .
          if (DIFF<=0) { B++;
                                  A=0;
                                }
         else { A++;
                   B=0;
                }
        .
        .
        .
       }
   retum 0;
}

 qualcuno con la mente un pò più sgombra...!
[snip]
dal tuo codice sembra che le variabili A, B e C assumano valori piccoli. Se
sono limitate per esempio ai valori compresi fra 0 e 7 puoi usare i bit
fields (consulta il manuale c++ in proposito).
Per esempio:
struct abc {
unsigned A : 3;
unsigned B : 3;
unsigned C : 3;
};
In questo modo le tre variabili occupano 3 bit ognuna, in totale 9 bit
(comunque la struct verrà probabilmente arrotondata a 16 bit, ma sempre
meglio di 3 int che occupano di più).
Newsgroup: it.comp.lang.c++
Titolo: Utenti e file in rete

Ciao a tutti
Ho un problema che mi assilla da un po' di tempo e riguarda un programmino
di gestione della rete.
E' possibile sapere, dato il nome di un file, quali utenti lo hanno aperto
e successivamente chiudere la connessione degli utenti al file?
Grazie in anticipo
-- 
Alberto Dallagiacoma (
Dallag...@yahoo.com
)


In che sistema operativo e/o protocollo di condivisione file?
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

 
OOOOOPS...
Mi sono dimenticato due cosa abbastanza importanti...
Il sistema operativo è Windows NT 4.0, il protocollo è il TCP/IP.

In article <01be871f$2c84f700$0600a8c0@DallagiacomaA>,

Il "protocollo" di condivisione dei file non e' il protocollo di rete
o di trasporto.
Si puo' avere SMB su NetBEUI, TCP/IP o IPX/SPX.
Si puo' avere NFS su TCP/IP
Esistono poi i directory sservices (LDAP e altro).
Per tornare al punto, potresti usare le funzioni di auditing del sistema
operativo, scrivedo qualcosa che imposti la SACL del tuo file e che gestisca
le informazioni che ti da' il sistema operativo.
A livello di risorsa condivisa dovresti provare con NetShareEnum() o con
qualche funzione di quella famiglia

Newsgroup: it.comp.lang.c++
Titolo: Template di funzione e conversioni...

Posso passare ad un template di funzione un oggetto di un su cui non č
definita una certa operazione, ma per cui č definita la conversione in un
tipo su cui invece quell'operazione č prevista?
Mi sembrava di aver capito di no, ma gcc e VC lo permettono...
--
Marco Iannaccone
marc...@tin.it
ICQ UIN: 18748121     MetalCoder
"This is a new ship, boy, but she's got the right name.
You treat her like a lady, and she'll always bring you home."
    Dr. Leonard H. McCoy to Data - Encounter at Farpoint - Star Trek TNG

 Mi sembrava di aver capito di no, ma gcc e VC lo permettono...
Non sono sicuro di aver capito. Comunque se ho capito la risposta e':
come parametro della funzione si, come parametero del template si ma ti da
errore di compilazione (il che equivale a dire no).
Ovviemente dato che parli di template di funzioni c'e' la possibilità di
parameter deduction. E ovviemante la risposta e' che se la deduction deduce come
parametro del template la classe dell'oggetto passato come parametro della
funzione, ottieni un errore di compilazione, se per qualche motivo (ovvero best
match di altri parametri) il parametro dedotto per il template e' quello
dell'altra classe, allora tutto Ok.
--
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

Aspetta...
in pratica, io ho un template di funzione, tipo:
template <class tipo> void f( tipo a, tipo b ) {
    a + b;
}
se passo un oggetto di tipo:
class A {
    public:
        A();
    ....
};
ovvero, in pratica, NON è definito l'operatore +. che viene usato nel
template.
Quindi, passandolo al template, viene dato un errore, dato che questo non
può essere instanziato col tipo A:
Se però il tipo A definisce un operatore di conversione per convertire
l'oggetto al tipo B, su cui + è definito, o magari B ha un costruttore non
explicit che accetta il tipo A, e che quindi può essere usato per creare un
oggetto temporaneo da passare al template, non è comunque possibile (a meno
che non espicito che il template deve usarre il tipo B, nel quale quindi ora
avviene la conversione da A).
Mentre, se invece A è convertibile a int, non dovrebbe essere comunque
possibile dedurre il tipo (dato che la conversione definita dall'utente, o
anche quella standard, non fa parte delle tre ammesse nelle deduzione del
tipo di un parametro, no?), ma con gcc e VC++, però, la cosa funziona. Come
mai?
Se poi il tipo è convertibile in più tipi primitivi diversi, allora c'è
giustamente ambiguità quando viene fatta la somma.
Come penso io, la cosa non dovrebbe funzionare, in base allo standard, no?


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

Dimenticavo: il programma dovrebbe essere sviluppato in Visual C++.

Domani sono libero.
manu ha scritto nel messaggio ...


PS hai VC++ ?


io ce lho.


ao !

Newsgroup: it.comp.lang.c++
Titolo: socket

Salve,
qualcuno di voi ha del codice (sia lato client che server) che implementi
una connessione via socket?
Dove posso prendere del materiale e/o codice semilavorato al riguardo ?
Grazie mille per l'aiuto.
Ciao.

...


...


Newsgroup: it.comp.lang.c++
Titolo: [C++] Contare il tempo trascorso.......

Ciao, come faccio a far calcolare quanto tempo ci mette il prog a ordinare
30000 numeri generati all'inizio????
che devo fare?????
Questo è il sorgente...
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <fstream.h>
#include <conio.h>
#include <dos.h>
int main()
{ 
int giro; 
int ruota; 
int const MAX = 1000; 
int vett[MAX]; 
int tmp; 
clrscr(); 
for (giro=0; giro<MAX; giro++) 
{ 
vett[giro]= rand() % MAX; ; cout <<giro<<" "<<vett[giro]<<"\n" ; 
} 
cout<<"Premi x ordinare..."; 
getch(); 
for (giro=0;giro<MAX;giro++) 
{ 
for (ruota=giro; ruota>=0; ruota--) 
{ 
if (vett[ruota]>vett[ruota+1]) //inverte i numeri 
{ 
tmp=vett[ruota]; 
vett[ruota]=vett[ruota+1]; 
vett[ruota+1]=tmp; 
} 
} 
} 
// Stampo i numeri ordinati 
for (giro=0; giro<MAX; giro++) 
{ 
cout <<giro<<" "<<vett[giro]<<"\n" ; 
} 
getch(); 
return 0; 
}

 che devo fare?????
Non sono sicuro che funzioni anche sotto win,
comunque le due cose piu' semplici
sono
1) per tempi lunghi (secondi) usare time(0) che ti restituisce
il tempo in secondi trascorso da (mi sembra) il 1 gennaio 1970.
2) per tempi brevi (centesimi) usare clock() che ti restituisce
una quantita' che dovrebbe essere proporzionale al tempo che
la CPU ha impiegato per eseguire il tuo programma fino a quel
punto (che non e' detto che sia uguale al tempo percepito dall'utente...)
Esisteranno sicuramente cose piu' C++ o piu' windows.
(Per esempio sotto linux ho una gettimeofday che mi da
secondi e microsecondi)
PS. se devi veramente ordinare 30000 numeri come dici allora
(come certamente saprai) e' meglio se usi un algoritmo di
sort molto piu' veloce di quello che hai implementato.
Per esempio facendo
#include<algorithm>
...................
std::sort(vett,vett+MAX);
sul mio pc il tempo per MAX=30000 passa da 1.77 a 0.01 secondi...
Intanto ti ho risposto. Magari attendi risposte piu'
autorevoli....
ciao,
g.

 ha scritto nel messaggio
news:Zdp7a.244234$0v.68...@news1.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: condivisione file in scrittura

Ho un'applicazione win32 che lancia fino a 30 thread che ogni tanto loggano su 
un file  testo la loro attivita, dato che il file in questione e' lo stesso per 
tutti ho un problema, viene genera un errore nel kernel32.dll 
quando piu' thread accedono contemporaneamenteal file
al momento sto usando le istruzioni fopen() fprintf() e fclose() ed evito la
condivisione attraverso un banalissimo semaforo (una variabile)
Utilizzando invece la gestione dei file attraverso l'utilizzo di Openfile()...
che ho visto ha qualche parametro per la condivisione risolverei secondo
voi il mio problema ?  Conoscete eventualmente un altro sistema
di condivisione di file testo in scrittura ?
Grazie in anticipo
Roby

 Ho un'applicazione win32 che lancia fino a 30 thread che ogni tanto loggano su 
Ergo, it.comp.programmare.win32 - qui si parla solo di C++ standard.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003
Newsgroup: it.comp.lang.c++
Titolo: Documentazione

Hi,
In questi  giorni ho  voglia di  imparare il C++...  a dire  il vero
conosco già il  C e la programmazione ad oggetti  (da linguaggi come
Java  ed  Object  Pascal),  quindi  non ho  bisogno  di  sapere  che
differenza c'è tra un metodo public  ed uno protected, così come non
ho bisogno di imparare la sintassi dei cicli e del C.
Avrei quindi bisogno di  una documentazione dettagliata sulle classi
C++ e sui  nuovi header e funzioni esclusive del  C++, avete qualche
link da consigliare?
Attualmente  ho iniziato  a  leggere "thinking  in  C++", online  ho
trovato e stampato (povera stampante... per  fortuna non è la mia :)
:) ) la versione inglese, non è che esiste una qualche traduzione in
italiano? Se è stato stampanto  in italiano da qualche casa editrice
potreste passarmi gli estremi (isbn /etc /etc)?.
byeZ!
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick VanniB   |   ICQ 18526701 |
--- rimuovi nofesso per rispondere ---
---PC powered by Linux kernel 2.4.14vb
- Lei  crede nella meditazione?  - Non
lo so. Ci devo pensare. 

dove trovo un bel manuale on-line da scaricare per principianti C++ e/o
visual c++
many thanks
daniele
abul...@supereva.it

Newsgroup: it.comp.lang.c++
Titolo: e possibile colorare una stringa

esistono funzioni per stampare con un cout una stringa COLORATA.
Premetto che come stringa uso i char*
grazie
-- 
Posted from 
cs1-1028.dialup.tiscalinet.it
 [62.10.174.4] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Premetto che come stringa uso i char*
Non in C++ standard. Prova a rivolgerti ad un newsgroup relativo alla
tua piattaforma.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: programmino

Devo fare il seguente programma:
partendo dall'alfabeto inglese di 26 lettere minuscole considerando come
parole valide quelle le cui lettere siano in stretto ordine alfabetico. Ad
esempio abc aep gwz sono parole valide, mentre aab are cat non lo sono.
A ciascuna parola valida associare un intero che dai la sua posizione
nell'elenco alfabetico delle parole. Cioè
a -> 1
b -> 2
..
..
..
z ->  26
ab -> 27
ac -> 28
..
..
xyz -> 2951
Scrivere un programma che per ciascuna parola in input dia il corrispondente
indice numerico se la parola è valida, altrimenti 0.
Si supponga che in input ci sia una parola per riga costituita da non più di
3 lettere minuscole.
Non aggiungere altro I/O oltre a quello richiesto, per permettere la
ridirezione dell'input e/o dell'output su file.
Esempio:
Input  e output
z
26
a
1
cat
0
yz
351
xyz
2951
qualcuno a qualche idea?
Grazie
Ciao
Valerio

 qualcuno a qualche idea?
Si, certo. Quanto paghi?
-- 
Luc.

 nell'elenco alfabetico delle parole. Cioè
Consigli:
- valuti quante lettere ti vengono fornite in input (N)
- l'input deve verificare la seguente proprieta':
  considerando V(x) il valore del carattere alla x-esima
  posizione.
 
  V(i) < V(j) con j = i+1 
- Valuta su "carta" le relazioni che esistono tra i vari casi notevoli,
   quali a,b....... ab, ac, ..... abc, abd. 
 
- Buon lavoro :-)
 

Ho scritto il seguente codice. Fa quello che deve fare quando in input ci
sono 1 o 2 lettere, mentre quando ci sono 3 lettere in input mi viene un
ciclo infinito.
Perchč?
void main(){
char parola[4];
char a,b,c;
int i=0;
while (cin.get(parola,4)){
cin.ignore(80,'\n');
int t=strlen(parola);
if (t==1){
for (a='a'; a<='z'; a++){
i++;
if (a==parola[0]) cout<<i<<endl;}
i=0;
}
int j=26;
if (t==2){
for (a='a'; a<='y'; a++){
for(b=a+1; b<='z'; b++){
j++;
if (parola[0]==a && parola[1]==b){ cout << j << endl;
j=26; }}}}
int n=351;
if (t==3){
for (a='a'; a<='x'; a++)
 for(b=a+1; a<='y'; b++)
  for(c=b+1; c<='z'; c++){
   n++;
   if (parola[0]==a && parola[1]==b && parola[2]==c && parola[3]=='\0')
{cout<< n;  n=351;}}}}}
Ciao
Grazie
Valerio

  for(b=a+1; a<='y'; b++)
perché qui a è sempre uguale a 'y'...
ti consiglio di indentare il codice, è illeggibile.
correggi la seconda condizione in
for(b = a + 1; b <= 'y'; b++) {
--
Andrea Spadaccini - Catania (Italy)
Mail: _
lupin85...@libero.it
ICQ#: 91528290
 - It is not important what you believe, only that you believe -

 for (a='a'; a<='x'; a++)
hai fatto sě che sia uguale a 'x'.
correggi il secondo for in:
for(b = a + 1; b <= 'y'; b++) {
E se vuoi un consiglio, indenta meglio il codice!

Newsgroup: it.comp.lang.c++
Titolo: Temporali residui...

Spronato dal post di alex sui costruttori, che ringrazio per avermi fatto
notare esistono per tutti i tipi, leggo sullo std (12.2.2):
const C& cr = C(16) + C(23);
l'espressione C(16) + C(23) crea tre temporali: T1 che contiene C(16), T2
che contiene C(23), e T3 contiene il risultato, copiato su &cr. fin qui ok.
Poi dice che T1 e T2 vengono distrutti alla fine dell'intera espressione,
ma che T3 viene distrutto quando viene distrutto cr!
se quindi avessi:
class C {
    int* _data;
    void copy(const int*) {};
    void set_data(const int& l){};
public:
    C() : _data(0) {};
    C(int l) { _data = new int[1000]; set_data(l);}
    ~C() { delete _data;}
    C(const C& c) {
        _data = new int[1000];
        copy(c._data);
    }
};
int
(){  
/*  questo potrei farlo implicitamente, ad es con
    un metatemplate o una macro... */
    const C& c_1 = C(1);
    const C& c_2 = C(2);
    const C& c_3 = C(3);
    const C& c_4 = C(4);
    const C& c_5 = C(5);
// ... 
// il programma //
// ...
   return 0;
}
Avrei il doppio della memoria allocata fino alla fine del main?

 Avrei il doppio della memoria allocata fino alla fine del main?
No, di oggetti di tipo C a questo punto ce n'e` uno -- T3, a cui cr fa
riferimento.  cr stesso puo` al massimo occupare la memoria che occorre
per un indirizzo, ma generalmente questo puo` essere ottimizzato in un
contesto come questo, e cr risulta allora un puro alias compile-time.
Alex

 wrote in message 8kdioi$957
|
| Meglio aprire l'ombrello, allora... (forse meglio "temporanei"!-).
Visto il tempaccio, era voluto... ;)
| No, di oggetti di tipo C a questo punto ce n'e` uno -- T3, a cui cr fa
| riferimento.  cr stesso puo` al massimo occupare la memoria che occorre
| per un indirizzo,
ops, mi sa che e' vero... grazie del chiarimento!
Newsgroup: it.comp.lang.c++
Titolo: Traduzioni in italiano

Ragazzi, vorrei una vostra opinione sulle traduzioni in italiano di
due testi che vorrei comprare. Non sono a digiuno di programmazione ma
non sono neanche un esperto e vorrei imparare il C++ (conosco già il C
per quello che può servire). Leggendo i vecchi post, ho capito che i
libri più gettonati sono quello di Stroustrup e quello di Lippman e
Lajole. Entrambi sono giunti alla III edizione ed entrambi sono stati
tradotti in italiano. Vorrei sapere se queste traduzioni sono
acquistabili o meno. Cioè vorrei sapere se Stroustrup è stato
finalmente tradotto bene e se l'altro si avvicina finalmente allo
standard visto che la precedente edizione era un pò obsoleta.
Ho visto, inoltre, che l'impostazione del libro di Stroustrup è
cambiata parecchio dalla II edizione (è cambiato anche il titolo). E'
diventata migliore anche per imparere il C++ e non solo per
approfondirlo? Tnx

 ha scritto nel messaggio
news:1402ce4.02092...@posting.google.com...

Io li ho entrambi e mi hanno aiutato a risolvere parecchi dubbi e
incertezze...
A mio giudizio la traduzione è buona. Se t'interessa acquistarli on-line
puoi andare su 
www.gorilla.it
Inoltre entrambi hanno un buon indice analitico...
Saluti
Rosario Ianuale

 Ragazzi, vorrei una vostra opinione
La risposta è 'si' a tutte le domande che poni :-))
ciao
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: Domanada da principiante

Programmo in C e mi sto avvicinando al visual C++.
Vorrei creare un pulsante all'interno della finestra CProvaView...
Posso farlo? Devo derivare la classe CButton ma su quale funzione devo
inserire il codice che mi crea questa classe derivata?

 writes:

Questo messaggio non riguarda tanto il linguaggio C++ in se, quanto
piuttosto problematiche che sono caratteristiche di un particolare
compilatore e di un particolare ambiente operativo.
Per questo motivo il messaggio e' off-topic in questo gruppo, di cui
ti prego di leggere il charter; puoi avere maggior fortuna chiedendo
su it.comp.programmare.win32 .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 wrote in message
rmhfbfy...@mlinux.pd.infn.it...


 mi spiegheresti come si fa ad avere le informazioni su un newsgroup?
Vengono postate periodicamente sul gruppo, da parte dei curatori
italiani; e dovrebbero spirare dopo un tempo ragionevolmente lungo in
modo da permettere a chiunque sia nuovo, quando legge i messaggi del
gruppo prima di fare le sue domande, di vederlo.  Oppure puoi
consultare le FAQ (Frequantly Asked Questions con risposte) del gruppo
su 
it.programmazione.it
, informazione questa riportata in diverse
risposte a diversi quesiti.
Le FAQ di tutti i gruppi dovrebbero anche finire in copia su
news.amswers, 
RTFM.mit.edu
 e svariati posti collegati; ma non sempre
avviene cosi'.


Il manifesto di it.comp.lang.c++ si trova qui:
http://beatles.cselt.it/news-it/manif/it.comp.lang.c++.txt
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: creare exe

Ho borland c++ builder, ed ho l'esigenza di creare un file exe
partendo da un file bat. In effetti io devo creare un exe che esegua
un'istruzione del tipo "wruncbl.exe -c config menu" e con un icona
personalizzata.
Ho provato programmi tipo bat2com e com2exe ma il risultato è uguale:
aprono comunque una finestra DOS e per associare un icona devo creare
un .pif.
Premetto che non ne capisco niente di C.
Mi potete aiutare?


dovresti chiedere su it.comp.programmazione.win32, comuque sappi che quelle
sono chiamate di sistema e che puoi richiamare tramite la system()
ciao

Newsgroup: it.comp.lang.c++
Titolo: Templates & header files

Non so se sono OT, non credo, ma se dovessi
esserlo vi prego di non volermene :)
Ecco il problema:
Devo sistemare la dichiarazione e la difinizione
di una funzione template tra i vari files che
compongono il mio programmino.
Sono in tutto 3: main.cpp, uno.hpp, uno.cpp
Ho provato ad organizzarli cosi:
// file main.cpp
#include "uno.hpp"
//..
// roba varia che sfrutta la classe Esp dichiarata in "uno.hpp"
//..
// file uno.hpp (quello che nelle intenzioni e' l'header file)
// include necessari
// ..
class Esp {
    // ...dichiarazioni... //
    Template <class T> T funz(/* ... */); // dichiarazione
    // ...dichiarazioni... //
}
// file uno.cpp (definizioni dei vari membri di Esp)
#include "uno.hpp"
Template <class T> T Esp::funz (/* ... */) { // definizione
}
// e altre definizioni varie...
Ma compilando mi da errore...
Allora ho provato ha mettere le definizioni delle funz template
in "uno.hpp", ma vengono fuori altri errori...
Ho provato tutte le combinazioni che mi sono venute a mente
(meno evidentemente quella giusta :( )
ma ancora errori. (sto parlando di errori del linker)
Ma come funziona? Devo per caso mettere le definizioni
dei template dentro la classe Esp?
Ci sto impazzendo: deve essere una cosa abbastanza scema,
pero' non riesco a capire come fare.
Ciao a tutti.
    Sprite


Ciao Sprite.
Quando ci sono di mezzo i templates, dovresti mettere dichiarazioni e
definizioni di tutti i metodi del template stesso in un unico file.
Maurus


Grazie mille: problema risolto (almeno in parte).
Ho visto in un altro thread che consigli Dev-C++
per chi vuole lavorare col C++ in ambiente windows,
e ho sentito per altre vie che questo compilatore e'
uno dei piu' conformi allo standard.
Sai per caso in quali casi se ne discosta?
Comunque, grazie ancora. Ciao
    Sprite

 a écrit dans le message news:
SV8l8.34565$%g7.10...@twister2.libero.it...

Mi dispiace,
non sono un esperto di standard.
Qua c'e' gente piu' esperta che sicuramente ti sapra' dire.
So solo che non esiste un compilatore che rispetta al 100% lo standard.
Forse il migliore e' il Comeau, ma per i miei scopi, il DevC++ mi soddisfa
ampiamente.
Al lavoro uso VisualC++ 6 che ha notevoli magagne.
Maurus
Newsgroup: it.comp.lang.c++
Titolo: Dei button ed altre storie

Ciao a tutti,
avrei bisogno di creare in una mia applicazione dei button dalla forma
circolare. Esistono librerie che possono auitarmi? Eventualmente se ci
sono indirizzi dove posso reperire la documentazione per crearli da solo.
Grazie
 

Ciao Alex,
se tu potessi specificare il sistema sul quale dovrebbe girare la tua
applicazione, il tool di sviluppo, insomma qualche altra info...
Nel frattempo, se si parla di windows 95, puoi utilizzare almeno due modi,
bottoni ownerdraw, dove tu stabilisci le immagini per il bottone, oppure
utilizzare la funzione SetWindowRgn(), per delimitare l'area visualizzata
del bottone stesso, che e' pur sempre una finestra.
ciao, Franco.
Franco Torrini - Software Engineer - 
f.to...@virtuart.it
VIRTUART - C.C.D. Creative Computer Design S.p.A.
Via di Quarto Annunziata, 80/b - 00189 Rome, Italy
Tel. 
+39 06 33076638
 - Fax. 
+39 06 33076670
Web: 
http://www.virtuart.it
Alex wrote in message ...


Newsgroup: it.comp.lang.c++
Titolo: Ringraziamenti a "Mario Scalas" e alla Newsgroup

Ciao! Un grazie di cuore a "Mario Scalas" che con due righe di risposta ha
risolto non solo il problema esposto nella mia E-Mail "Viual C++ e Open
Gl....ma addirittura una cinquantina di problemi che avevo su Open Gl e
Visual C++...semplicemente fornendomi l'indirizzo di un sito che "piů
giusto" non si poteva!!!...questo della Newsgroup č stata per me un pň
l'ultima spiaggia dopo domande e domande fatte ad amici, amici degli amici,
amici degli amici degli amici....e cosě via...complimenti alla vostra (ora
anche mia!) Newsgroup e ancora un grazie al "MAGICO" "Mario Scalas"!
Luca

Di niente: anche io sto studiando OpenGL e questo sito parte dai fondamenti
sino alle "cose" piu' avanzate. Buona fortuna!
glMario++.

Newsgroup: it.comp.lang.c++
Titolo: intefaccia Visual basic C++

non riesco a interfacciare c++ con visual basic, in particolare quando
cerco di passare dei valori a una funzione contenuta in una dll in c++.
grazie
 

cerco di passare dei valori a una funzione contenuta in una dll in c++.
Se la funzione in questione:
    -- usa l'interfaccia _stdcall (o WINAPI o CALLBACK o ... che dir si
voglia)
    -- e` esportata dalla DLL
    -- e` esportata col suo nome PULITO ("alla C", per intenderci)
    -- e` correttamente dichiarata dal lato VB,
(la mancanza di una di queste condizioni e` l'errore piu` frequente),
allora fra i vari possibili errori ci sono essersi scordati che "int" ha un
diverso numero di bit in VB e C++, che le stringhe VB, benche` di
per se Unicode, sono tradotte trasparentemente ad ANSI nel passaggio
a DLL, e cose del genere.
Difficile essere piu` precisi senza vedere il tuo codice che sbaglia;
magari posta sul gruppo una versione ridotta all'osso di quello che
stai usando, sia dal lato C++, sia da quello VB.
Alex

 
L' operazione in questione richiede non è delle più semplici ma con un
po di pratica.....
Potrai trovare utile il file presente nel CD di VB5 "Vb5dll.doc" che
si trova in "Tools\Docs\". Se non dovessi trovarlo o ti trovassi
ancora in difficoltà scrivi pure all'indirizzo
tutone_...@iol.it
Newsgroup: it.comp.lang.c++
Titolo: Come diventare programmatori?

Qualcuno sa dirmi come diventare programmatori in c++?
Ho cercato in lungo e in largo per la rete delle azziende che facciano dei
corsi di programmazione, ma sembrano tutte bufale, cioč pagare 2.000.000 per
un corso di 2 mesi mi sembra eccessivo e poi non sň che tipo di preparazione
di possano dare in cosě poco tempo.
Qualcuno conosce qualche posto dove fanno dei veri corsi per questo
linguaggio?
Ho altrimenti sapete indicarmi un percorso formativo da fare da solo, magari
consigliandomi qualche libro?
Grazie Mille e a presto!

 consigliandomi qualche libro?
Prendi Thinking in C++ di Bruce Eckel all'indirizzo
ftp://mindview.net/pub/eckel/TIC2e
.
EMG

Newsgroup: it.comp.lang.c++
Titolo: ordinamento lista

ciao,
esistono dei comandi per ordinare un vettore di elementi(interi) dal piu
piccolo al + grande?
Grazie

 piu piccolo al + grande?
vale sia per std::vector<int> che per int[]
#include <algorythm>
// caso std::vector<int> vec; 
std::sort(vec.begin(), vec.end());
// caso int vec[len]
std::sort(vec, vec + len);
se hai problemi di timing nel caso pessimo, o di ordine relativo degli 
oggetti che risultano uguali (non e' il caso dei vettori di interi) usa 
std::stable_sort, stessa sintassi

 piu piccolo al + grande?
vale sia per std::vector<int> che per int[]
#include <algorithm>


 writes:

Attenzione: nel _soggetto_ si parla di liste, nel _testo_ si parla di
vettori; e la risposta riguarda vettori ed arrays.  Se la domanda
riguardasse per davvero le liste, sarebbe meglio usare il metodo
interno 'sort' di std::list piuttosto che l'algoritmo std::sort, per
ovvii motivi (il metodo sa che non si tratta e.g. di un container ad
accesso random, ed ottimizza le operazioni, appunto, per le liste).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 accesso random, ed ottimizza le operazioni, appunto, per le liste).
ti diro', ci ho pensato, ma ho deciso unilateralmente che, visto il 
testo, la risposta a cui era interessato fosse questa. altrimenti, 
prosegue il moi ragionamento, avrebbe riscritto chiarendo meglio il suo 
(a mio avviso poco preciso) modo di esprimere dubbi sul c++

 accesso random, ed ottimizza le operazioni, appunto, per le liste).
Nope. Il motivo è che std::sort richiede dei random iterator mentre
std::list::iterator è un bidirectional iterator ma non un random
iterator. In altre parole non puoi ordinare una lista usando std::sort.
Ergo, ovviamente, devi usare una altro meccanismo.
--
Andrea Ferro
IHHC - Member of HT-Group  DVD Authoring operator  Fan of I.Asimov
C++ Master: 
http://www.brainbench.com/transcript.jsp?pid=2522556
This post expresses personal opinions which may or may not be the
opinions of the company(s) I work for. I speak for myself only.

 (infatti ti sei fatto ingannare anche tu).
E' vero.  Sempre prima controllare, senza fidarsi della memoria :-(
