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

Sono un chimico e sto studiando le proprieta' delle proteine.
Mi piacerebbe, col tempo, imparare bene un linguaggio di programmazione per
lo studio delle molecole.
Qualcosa che somigli a "think" un programma della Intel che esegue calcoli
di affinita' tra nuove molecole e proteine. Per chi fosse interessato questo
programma e' scaricabile da 
www.ud.com
 ed esegue in background delle analisi
matematiche che poi invia al server centrale. Tutto questo per la ricerca di
molecole attive contro il cancro.
Pur non conoscendo la struttura di think so che si basa su interpolazioni
matematiche. Io invece vorrei attribuire ad ogni atomo determinate
proprieta'. Poi farli associare per creare composti e alla fine arrivare a
strutture complesse.
Non conoscendo che molto superficilamente i linguaggi di programmazione mi
chiedevo se il C++ potesse, con la sua proprieta' di programmazione ad
oggetti, creare degli atomi virtuali assegando valori come
elettronegativita', raggio atomico e quant'altro, visualizzarli su schermo e
farli interagire.
Ma ripeto conosco poco il C++ e non vorrei trovarmi tra qualche mese con
difficolta' insormontabili. Per cui, a voi che siete esperti in materia,
chiedo un consiglio franco, e' possibile lavorare con il C++ su un progetto
del genere o e' meglio che lasci perdere.
Ciao
Maurizio Pucciarelli

 farli interagire.
Per essere possibile, e' certamente possibile.
Ma dato che dici di non conoscere bene i linguaggi di programmazione non sono
ceto che lo studio del C++ (linguaggio alquanto complesso) sia l'ideale nel tuo
caso.
Io ti consiglio di cercare un linguaggio piu' semplice, con supporto OO, e di
rapido apprendimento.
Considera, per esempio, Python, Java, Smalltalk.
--
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
Newsgroup: it.comp.lang.c++
Titolo: suggerimento su schema di derivazione

Io vorrei implementare uno schema di classe in questo modo:
class Base
{
    protected:
        virtual void copy(const Base& b) = 0;
        virtual void free() = 0;
    public:
    const Base& operator=(const Base& b)
    {
        if(this == &b)
            return *this;
        free();
        copy(b);
        return *this;
    }
};
e nelle classi derivate fare l'overriding delle funzioni virtuali senza
dover ogni volta riscrivere operator= che rimane sempre quello solo che
richiamerà le funzioni copy e free opportune.
E' solo un esempio.
Avete qualche idea? Il problema sta nei parametri delle funzioni che devono
cambiare con le classi derivate.
Grazie.

 cambiare con le classi derivate.
la via piu' semplice e' quella che ho scritto anche in un'altro post, e
cioe' crearsi una classe base virtuale comune da cui tutte le classi che ti
serve ereditano, poi inserisci il metodo del typeid, cosi' facendo i
paramentri da passare alle funzioni rimangono sempre gli stessi (cioe' la
classe base) e poi dentro tale funzione oveloadata fai il test del typeid e
down-casti la classe base alla sua vera classe e poi la puoi usare sapendo
benissimo che classe e'.
cmq se ti serve solo poter distruggere la classe senza ritrovarti errori, ti
basta avere il distruttore virtuale e qualsiasi operazione di delete non
otterra' errori (ameno che hai sbagliato ad implementare il distruttore in
una classe).
spero sia chiaro il mio discorso ? speriamo di non aver detto castronerie.
ciao

 richiamerà le funzioni copy e free opportune.
Non funziona, perche' se le tue classi derivate non hanno un operatore
di assegnamento il compilatore ne sintentizza uno, e quello da te
definito viene bellamente ignorato.
L'assegnamento e' una funzione che non si presta all'implementazione
via polimorfismo.
Inoltre se anche fosse possibile la tua soluzione sarebbe decisamente
vulnerabile alle eccezioni.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: copia del contenuto corrente di un ostringstream

Ciao a tutti,
ho provato a cercare tra i vecchi post una soluzione al mio problema
senza trovare nulla. Si tratta di questo:
ho un ostringstream che viene passato ad una classe (non mia, il cui
sorgente non mi e' disponibile) la quale vi scrive una serie di
caratteri.
In generale questa serie di char non e' una stringa, poiche' puo'
contenere anche caratteri nulli (ad esempio un buffer XML con encoding
UTF-16).
E' possibile sapere, ad un certo istante, quanti caratteri sono stati
scritti sullo stream, allocare un array della stessa dimensione, e
copiarvi dentro, ordinatamente, tutti i caratteri scritti sullo stream
?
Ci sono delle API della classe ostream, oppure ostringstream che mi
permettono di farlo ? Gli esempi che ho a disposizione non contemplano
questo caso (in genere trasformano il contenuto dello stream in
stringa col metodo str()).
Ringrazio tutti in anticipo.
Massimiliano Curcio

 scritti sullo stream?
Si, anche se non vedo che vantaggi possa dare un array rispetto a una
stringa (nota che con un array che contiene caratteri nulli non puoi
usare le funzioni er le stringhe C-style).
  ostringstream o;
  o << ... << '\0' << ...;
  string s = o.str();
  char* array = new char [s.length()];
  copy(s.begin(), s.end(), array);
  delete [] array;
P.S. se lavori con UTF-16 probabilmente ti possono essere utili i
wchar_t e derivati (wstring, wstringstream, wcin, wcout, ...).
        Mauro
Newsgroup: it.comp.lang.c++
Titolo: come far funzionare il compilatore c++ 5.5

premetto che non me ne intendo molto.
Ho scaricato la versione gratuita della borland.
1 ) è normale il fatto che ho dovuto compilare un questionario(in iglese
'lungua di cui sono digiuno') per poter scaricare il prodotto?
2)ho scaricato anche " turbo debugger" a cosa serve?
3) dopo il setup di c++ 5.5 come si fa a far parire
il compilatore?
4) mi indicate un testo valido per imparare il linguaggio   c++.?
ringrazio anticipatamente chiunque mi sappia rispondere.
ciao


Ciao,
per rispondere alle tue domande:
1) si, è normale (solitamente le azienda che permettono i
download di loro prodotti cercano di capire chi sono i loro
potenziali clienti e spesso vendono i tuoi dati a terzi).
2) il turbo debugger era solitamente distribuito con il turbo
assembler. TD serve appunto per debuggare le applicazioni
sviluppate, ti permette di seguire passo passo l'esecuzione
delle istruzioni, controllare i valori nei registri, controllare
il contenuto della memoria, ecc.
3) quello che hai scaricato sono solo i command line tools del
c++ builder 5, per compilare/linkare i tuoi sorgenti devi
lanciare comandi dalla linea di comando o in alternativa per
applicazioni piu complesse usare un makefile
4) il libro di Bjarne Stroustrup (che tra l'altro nella versione
inglese è appena uscito nella seconda edizione) è il piu
completo .. ma lo sconsiglio per chi deve cominciare ad imparare
il linguaggio (rischieresti di abbandonare lungo la strada). il
libro di Herbert Schildt puo essere ragionevole per iniziare
("la guida completa C++" edito da McGraw-Hill). ma se vuoi un
consiglio comincia ad imparare il C prima di passare al C++
(Herbert Schildt ha scritto un libro sul C "la guida completa C"
anch'esso edito da McGraw-Hill che puo essere un buon punto di
partenza).
Saluti,
Bob Rock
-----------------------------------------------------------
Got questions?  Get answers over the phone at Keen.com.
Up to 100 minutes free!
http://www.keen.com

 partenza).
Scusami ma tutti e tre i suggerimenti (Schildt, C e ancora Schildt) non
mi sembrano validi dato che i libri di Schildt sono tristemente famosi
per la loro imprecisione e il C non è affatto propedeutico al C++.
EMG

 1 ) è normale il fatto che ho dovuto compilare un questionario(in iglese



Ciao,
quello che dici dei libri di Schildt è vero, questo non toglie
che possano essere dei validi punti di partenza.

Newsgroup: it.comp.lang.c++
Titolo: problema copy constructor

cerco di semplificare il mio problema ai minimi termini. ho questa
classe
class TCella : public TCandidati
{
 private:
    int m_value;
    bool m_set;
 public:
    ...
    TCella(const TCella &old);    // Copy constructor
}
il copy constructor di questa classe funziona, ma di questa:
class TScacchiera
{
 private:
    TCella m_celle[X][Y]; //X e Y sono degli const int già definiti
    ....
 public:
    TScacchiera();
    TScacchiera(const TScacchiera &old);
     ...
}
come faccio ad implementare il copy constructor in modo che sia
chiamato il copy constructor di tutti gli elementi di m_celle?


Non hai speranza. Quello che puoi fare e' inserire un ciclo nel tuo
costruttore di copia per assegnare ad uno ad uno gli elementi della
sorgente agli elementi corrispondenti della destinazione. Al tuo posto
prenderei in considerazione l'ipotesi di usare un std::vector di
std::vector di TCella.
Ciao,
Nicola

 Non hai speranza.
Potrebbe incapsulare l'array in una classe separata.
 struct celle
 {
        TCella v[X][Y];
  };
 class TScacchiera
 {
  private:
    celle m_celle;
  public:
    TScacchiera(const TScacchiera &old) : m_celle(old.m_celle)
   {    // ...
   }
   ...
Max


Hai ragione, non ci avevo pensato. In alternativa potrebbe spostare
l'array in una classe base e richiamarne esplicitamente il costruttore
di copia nella classe derivata.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Programma

Ciao a tutti. Speriamo che qualcuno possa essermi utile.
Mi servirebbe un programma in Visual C++ che trasformi un importo scritto in
cifre, in lettere.
Ad esempio quando compiliamo un assegno che scriviamo l'importo sia in cifre
che in lettere.
Ringrazio anticipatamente.
Sergio.

che in lettere.
Scritto apposta per te ! 
E' puro C, spero vada bene lo stesso :)
/************************/
/* TrasformaNumeri.c    */
/* 04/07/2000           */
/* Andrea Laforgia 2000 */
/************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* sDecine[]   = { "", "dieci", "venti", "trenta",
                            "quaranta",
                            "cinquanta", "sessanta", "settanta",
                            "ottanta", "novanta" } ;
const char* sUnita[]    = { "", "uno", "due", "tre", "quattro",
                            "cinque",
                            "sei", "sette", "otto", "nove" } ;
const char* sCoppiaDU[] = { "dieci", "undici", "dodici", "tredici",
                            "quattordici", "quindici", "sedici",
                            "diciassette", "diciotto", 
                            "diciannove" } ;
const char* sSuffisso[] = { "miliardi", "milioni", "mila", "" } ;
char *sTrasformaGruppo( char* sGruppo )
{
     char *R = malloc( 30 ) ;
     if ( R )
     {
        int iCentinaia = sGruppo[0] - '0' ;
        int iDecine    = sGruppo[1] - '0' ;
        int iUnita     = sGruppo[2] - '0' ;
        *R = 0 ; /* stringa di ritorno inizialmente vuota */
        if ( iCentinaia == 1 ) strcat( R, "cento" ) ;
        else
        if ( iCentinaia != 0 )
        {
           strcat( R, sUnita[iCentinaia] ) ;
           strcat( R, "cento" ) ;
        }
        if ( iDecine == 1 ) strcat( R, sCoppiaDU[iDecine] ) ;
        else
        {
           strcat( R, sDecine[iDecine] ) ;
           if ( iDecine && (iUnita == 1 || iUnita == 8 ) )
              R[strlen(R)-1] = 0 ;
           strcat( R, sUnita[iUnita] ) ;
        }
     }
     return R ;
}
char *sTrasformaNumero( unsigned long ulNumero )
{
     char *sBuffer       = malloc( 300 ) ;
     char  sNumero[13]   = {0} ;
     char  sGruppo[4][4] = {{0},{0},{0},{0}} ;
     char *sGruppoTrasf[4] ;
     int i ;
     sprintf( sNumero, "%012lu", ulNumero ) ;
     *sBuffer = 0 ; /* stringa di ritorno inizialmente vuota */
     for ( i = 0 ; i < 4 ; i++ )
     {
         strncpy( sGruppo[i], &sNumero[i*3], 3 ) ;
         sGruppoTrasf[i] = sTrasformaGruppo( sGruppo[i] ) ;
         if ( sGruppoTrasf[i] && sGruppoTrasf[i][0] )
         {
            strcat( sBuffer, sGruppoTrasf[i] ) ;
            strcat( sBuffer, sSuffisso[i] ) ;
         }
     }
     return sBuffer ;
}
int main()
{
    puts( sTrasformaNumero( 405 ) ) ;
    return 0 ;
}
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

Ti ringrazio tanto !!!!! Se dovessi avere problemi o altro....ti mando una
mail, grazie ancora !!!
Ciao ! Sergio.
Newsgroup: it.comp.lang.c++
Titolo: Aiuto :configurare DJGPP

Sto cercando di usare djgpp, ma non mi crea gli eseguibili da sorgenti
in c++, dandomi questo messaggio:
cannot open -lstdcx : no such file or directory
Cosa devo mettere in options/directories/include, libraries,ect.
Grazie

...

L'errore e' riferito a 'stdcx' o 'stdcxx' ?
Rhide cerca di linkare con libstdcxx.a (9 caratteri) ma nella distribuzione
normale (DJGPP 2.7.1) questa libreria si chiama libstdcx.a (8 caratteri -
formato MS-DOS).  Vai nella directory di nstallazione di DJGPP,
sottodirettorio lib, e fai una copia di libstdcx.a in libstdcxx.a

 Cosa devo mettere in options/directories/include, libraries,ect.
Questo è il batch che uso io per compilare (ultima versione del DJGPP):
@ ECHO OFF
SET DJDIR=.
IF EXIST %1.c gcc -ansi -pedantic -Wall -O3 %1.c -s -o %1.exe
IF EXIST %1.cc gxx -ansi -pedantic -Wall -O3 %1.cc -s -o %1.exe
SET DJDIR=
IF NOT ERRORLEVEL 1 IF EXIST %1.exe %1
Nella directory di lavoro ho due subdirectory, INCLUDE per gli include
files e LIB per le librerie.
Se hai ancora problemi scrivi.
EMG

Questo è il batch che uso io per compilare (ultima versione del DJGPP):
Perche` non usi i makefiles, che offrono molte funzionalita`
aggiuntive per gestire la compilazione e manutenzione dei
progetti ?
Esiste una versione di Make ancke per DOS.
Ciao
-- 
Roberto Gerola
Email: 
roge...@tin.it
WWW: 
http://space.tin.it/computer/rgerola

 progetti ?
Perché li odio. Mi trovo molto bene con i batch e qualche utility
scritta da me e non ho nessuna intenzione di imparare l'astruso
linguaggio offerto normalmente da quegli strumenti.
EMG

cercasi manuale del Visual c++ 6,0 in italiano
cd...@usa.net


Innanzitutto grazie per l'aiuto.
Putroppo non ho risilto il problema.
Il filòe che mi hai indicato era già presente nella versione a 9
caratteri, così ne ho creato uno identico con nome libstdcx.a : (non)
funziona come prima, però è cambiato il messaggio.Ora ottengo questo:
C:/NEW\SVILUPPO/DJGPP/lib/libstdcx.a(1) error: parse error.
Prima ottenevo:
C:/NEW/SVILUPPO/DJGPP/bin/ld.exe  -lstdcx cannot find such file or
directory.
Pazienza
Grazie lo stesso


Grazie per il consiglio.
Ho provato ma non funziona.
Io perň non ho la cartella di djgpp direttamente su c:.
Il percorso completo č:
C:\NEW\SVILUPPO\DJGPP\
Dipende da questo?
Grazie comunque

 Dipende da questo?
No, non penso. Prova a creare una directory con dentro
GCC      EXE
GXX      EXE
CPP      EXE
CC1      EXE
CC1PLUS  EXE
AS       EXE
LD       EXE
INCLUDE      <DIR>
LIB          <DIR>
piů il batch di cui sopra. Nella stessa scrivi un sorgentino di prova e
compila con il batch. Deve funzionare (a me funziona).
EMG

Beck Zaratian,
Visual C++,
Ed. Mondadori, 120 sacchi.
Nelle librerie serie.

Finalmente ci sono riuscito : il problema era il file libstdcxx.a che ho dovuto rinominare libstdcx.a.
In realtà avevo già creato un file così, aprendo libstdcxx.a e poi
salvandolo col nuovo nome in formato testo, ma non aveva funzionato.
Ho dovuto proprio rinominare il file originale.
Grazie a tutti per l'aiuto
Marcello
Newsgroup: it.comp.lang.c++
Titolo: clrscr() in conio.h

Salve a tutti
Mi  sono trovato a realizzare dei piccoli applicativi in formato DOS con
Microsoft Visual C++ 6.0 che a differenza dei compilatori della bordland non
ha la funzione clrscr() (pulisci lo schermo) nella libreria conio.h e non
sono riuscito a trovare un funzione (semplice come clrscr()) che la
sostituisca (non ho l'help)
Aiutatemi per favore!!!!!!
Grazie Alex

(non ho l'help)
E da dove prendi la documentazione????
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: SMTP Server con Indy

Sto cercando di utilizzare il codice dell'esempio SMTPRelay contenuto
nella libreria Indy, ma sto avendo dei problemi... Il problema è che
non sono riuscito ad estrarre, dalla risposta della DNS query, il
record MX... Ho provato a tradurre il codice Delphi, contenuto
nell'esempio, in codice BCB ma non sono riuscito ad estrarre il record
MX. Ecco il codice che ho usato:
if ( IdDNSResolver1->QueryResult->Count > 0 )
{
        for (int i = 0; i<= IdDNSResolver1->QueryResult->Count - 1;
i++)
        {
                if (IdDNSResolver1->QueryResult->Items[i]->RecType ==
qtMX )
                {
                        TMXRecord *MXR = new
TMXRecord(IdDNSResolver1->QueryResult);
                        MX = MXR->ExchangeServer;
                        Edit1->Text = MX;
                        delete MXR;
                }
        } 
} 
Che ne pensate?? Cosa posso fare? 
Grazie mille!!

 Che ne pensate?? Cosa posso fare?
Per esempio smettere di postare domande fuori argomento.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: std::string::rfind()

Salve a tutti,
se il metodo sopra citato non trova il carattere richiesto, cosa
torna? Il mio problema è che non riesco a metterlo in un ciclo. Pensavo
di potere usare questo codice:
#include <iostream>
#include <string>
int main() {
    std::string p("c    ");
    std::string::size_type t = 0;
    t = p.rfind(" ");
    while(t != 0) {
        std::cout << "Found space at " << t << std::endl;
        std::string::iterator i = p.begin() + t;
        p.erase(i);
        t = p.rfind(" ");
    }
    std::cout << p << "iao" << std::endl;
    while(std::cin.get() != '\n');
    return 0;
}
ma c'è qualche problema.. questo è l'output del programma:
Found space at 4
Found space at 3
Found space at 2
Found space at 1
Found space at 4294967295
abnormal program termination
Spero che qualcuno mi dia una mano, anche se il problema è sicuramente
banale. TIA.
--
Andrea Spadaccini - Catania (Italy)
Mail: _
lupin85...@libero.it
ICQ#: 91528290
 - It is not important what you believe, only that you believe -

 abnormal program termination
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 std::string::npos
Denghiů! :)

Newsgroup: it.comp.lang.c++
Titolo: get e getline

Salve,chi può spiegarmi perchè quando faccio
char* st=new char[4];
char* nt=new char[3];
char* c=new char[100];
in.get(st,3);
in.get(nt,3);
in.getline(c,100);
cout<<c;
legge con le prime due get venno bene e poi il getline non mi torna
niente?perchè con un solo get e un getline va e con due get prima del
getline no?

 getline no?
Se non erro std::istream::get() preleva dei caratteri dallo stream fino ad
un terminatore o alla fine dell stream e lascia lě l'eventuale newline senza
estrarlo.
Pertanto la successiva chiamata a std::istream::getline(), che preleva
caratteri fina al newline, trova come primo carattere proprio il newline ->
non legge nient'altro.
Prova a svuotare il buffer dopo i get(), se non sbaglio puoi usare 
in.ws
(),
dopo le chiamate a get().
-- 
Domenico Testa - Studente

 dopo le chiamate a get().
no,mi dice che ws() non  è un metodo che posso chiamare.che posso fare?

 in.getline(c,100);
Questa getline() legge al piu` 99 caratteri dallo stream, o fino al 
terminatore (escluso). Rispetto a get(), toglie anche il terminatore 
dallo stream (ma senza piazzarlo nel buffer di lettura).
Per cui, sostituisci in.get() con in.getline() opportune, e 
probabilmente devi modificare il secondo parametro se intendevi leggere 
3 caratteri invece di 2.
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it
Newsgroup: it.comp.lang.c++
Titolo: cout: precisione

Come faccio a stabilire la precisione (ed anche l'incolonnamento) di un
numero reale con cout? Quello che nel vecchio C ottenevo con %5.2f
Grazie :)


con il manipolatore setw scegli la lunghezza dell'output, con setprecision
il numero di cifre significative:
#include <iostream>
#include <iomanip>
using namespace std;
double n=12.3456;
cout<<setprecision(4)<<setw(10)<<n;
--
Pela

 wrote in message
news:tXf6c.61970$z23.2...@news3.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: Compilatore c++ per DOS

Scusate, sapete dove posso trovare il vecchio compilatore c++ per DOS della
Borland?

 Borland?
Guarda su 
www.mediadirect.it
  cercando Turbo C++ 3.0
Ciao
Fulvio
//////////////////////
Videosoft s.a.s.
Via Ugo Foscolo 43/A
20050 - Lesmo (Mi)
vide...@rete039.it
vide...@tiscalinet.it
/////////////////////

Newsgroup: it.comp.lang.c++
Titolo: Instanziare un COM Visual Basic

 Per questo non e' il posto piu' adatto per porre domande specifiche come
la tua.
Non sono d'accordo per niente.
La mia richiesta di aiuto era chiara: Volevo realizzare una applicazione C++
MDI con MFC e in qualche evento volevo istanziare
un COM Visual basic.Tutto qui.
E questo per me' e' un argomento di C++.
Ormai mi sto' convincendo che ci sono piu' ortodossi tra coloro che
frequentano i newsgroup che in IRAN.
Eppure siamo in Italia....
Antonio Passaro
-- 
Posted from 
gwit1.wang.com
 [192.58.227.130] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Eppure siamo in Italia....
Mai tanti quanto i maleducati...
Ciao,
Nicola

 Mai tanti quanto i maleducati...
Beh. Forse piu' che maleducato direi ignorante (non in senso dispregiativo ma in
senso letterale di "colui che non sa"). Ovvero non sa che MDI, MFC e COM (per
non parlare di VB) sono proprietarie di MS e non fanno assolutamente parte del
C++.
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

Non sono completamente d'accordo, ma non voglio litigare con te per
qualcosa che ha fatto qualcun altro :-)
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: CLASSI BASE E DERIVATE

Salve ragazzi, qualcuno mi sa dire come si vanno a collocare in
memorie le classi?e le classi derivate?
grazie e solo per capire bene il loro funzionamento.    :-)


da qualche parte in memoria...
ovvio...
Newsgroup: it.comp.lang.c++
Titolo: wxWindows e OpenGL (errore in compilazione)

Ciao a tutti,
uso Dev-Cpp, ho creato un programmino che utilizza per la GUI,
wxwindows, adesso stavo integrandolo con un altro che usa le openGL, e
che a parte son riuscito a far andare, disegna un cubo wireframe con
delle sferette dentro (ho usato la auxsolidsphere per la precisione e
per il cubo auxwireframe).
Con un po' di accortezza accorpo il secondo al primo, ma noto un
errore che non riesco a scrollarmi di dosso durante la compilazione.
Ho testato un po' e ho notato che sto errore mi capita SEMPRE quando
provo a utilizzare delle funzioni OpenGL in un  programma che fa uso
delle wxWindows.
Quando compilo infatti (supponiamo che sto disegnando una sfera)  mi
da errore perche' non trova le librerie legate alla funzione che
disegna la sfera : bene, gli linko le lib giuste (al 100%, su un altro
prog che fa lo stesso disegno usa quelle 8)) ... sono le glaux   ),
ricompilo e aspettandomi che quel compili senza problemi,
a quel punto mi da BUILD ERROR.
Guardo il log e scappa questo:
Compilatore: Default compiler
Building Makefile: "C:\Dev-Cpp\Programmi_Progetti\Copia di Beta
(float) di ProgettoGUI COSMO\Makefile.win"
Esecuzione di  make...
make.exe -f "C:\Dev-Cpp\Programmi_Progetti\Copia di Beta (float) di
ProgettoGUI COSMO\Makefile.win" all
windres.exe -i ProgettoGUI_private.rc -I rc -o ProgettoGUI_private.res
-O coff 
"gcc" non Š riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
windres.exe: no resources
make.exe: *** [ProgettoGUI_private.res] Error 1
Esecuzione terminata
Questo e' tutto, ho provato a crearmi dei file di prova e integrarmi
con le primitive + semplici dell'OpenGL ma nulla, scappa sempre fuori
quel maledetto BUILD ERROR , dopo che ho linkato le librerie.... MA
PERCHE??
Quel file ProgettoGUI_private.res lo crea all'inizio quando uso in
Nuovo Progetto l'opzione GUI-wxwindows, ma non so che farci...aiuto
;_;
Grazie a tutti 8))
Ciao

 [CUT]
Sei OT, qui si parla di C++ standard (e questo messaggio lo scriviamo 
almeno 3 volte alla settimana).
Ti consiglio it.comp.programmare.win32
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */
Newsgroup: it.comp.lang.c++
Titolo: Gestire i messaggi di Window anche durante un ciclo (C++ Builder)

Come posso fare a gestire i messaggi di windows (anche esterni) durante un
ciclo for o while?
P.S.: uso Borland C++ Builder 1.0
Grazie!

...

Ciao Demetrio,
ho incontrato lo stesso problema ed ho risolto con questa piccola funzione
della quale ti invio il codice:
void emptyQueue(void)
{
 MSG msg;
 while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
}
Questa, prende tutti i messaggi nella coda e li invia alla finestra
proprietaria, non appena la coda dei messaggi e' vuota, la funzione ritorna.
La chiamo tranquillamente nei cicli da te indicati e funziona bene.
ciao, Franco.

P.S.: uso Borland C++ Builder 1.0
Non mi pare che il Builder definisca un metodo di
incapsulamento particolare, l'equivalente della
PumpMessage di MFC ad esempio... o forse e`
solo poco e male documentato...?  Quest'ultima
caratteristica e` certo vera di PumpMessage...!-)
Alex

P.S.: uso Borland C++ Builder 1.0
Richiama
Application.ProcessMessages();
Ciao
---------------------------------------
Email: sostituire "nospam" con "netsis"

Newsgroup: it.comp.lang.c++
Titolo: Service pack 3

Sapete se qualche rivista del settore ha pubblicato un cd rom con il service
pack 3 per visual studio 6 o se è possibile scaricarlo dalla rete?


Io sono in possesso di un CD distribuito da Microsoft allo SMAU in cui è
stato inserito il Service Pack 3 di Visual Studio 6.0
Non ho indagato, ma credo che nel sito Microsoft sia disponibile la versione
per un download.
l.ad...@protec-italy.com

Adorni Luigi wrote:

La versione scaricabile dalla rete gratuitamente ha la modica dimensione di
110MB :-<

Il mese prossimo sarà disponibile su Dev e IoProgrammo se saranno
disponibili come al solito.
San Vegeta


Uno speciale, se non ricordo male di Io Programmo,
ma era Agosto...
ciao, Franco.
--
Posted from [194.184.225.66] by way of 
law2-oe8.hotmail.com
 [216.32.180.112]
via Mailgate.ORG Server - 
http://www.mailgate.org

Newsgroup: it.comp.lang.c++
Titolo: C++B3 e HTML

Salve a tutti
Spero che qualcuno possa gentilmente aiutarmi a risolvere un problemino che
ho con c++ builder:
Per alcune esigenze dovrei riuscire a visualizzare all'interno
dell'applicazione dei file HTML.
Ho provato con il controllo NHTML ma i risultati sono stati semplicemente
NULLI!!
Ora può essere benissimo che sia stato io a non capirci assolutamente nulla
però...
ho cercato di seguire la DOC ON-LINE ma niente di niente....
Se qualcuno gentilmente può darmi una mano...
Grazie a tutti

Dopo vari tentativi sono riuscito a far visualizzare un file
HTML e da quanto ho capito bisogna specificare nell'URL
il tipo di protocollo, cioe':
HTML1->RequestDoc("file:/c:\\path\\nomefile.html");
Tutto qui.
Ciao
Filippo Neri
Newsgroup: it.comp.lang.c++
Titolo: Upadate di database su SQL Server 7.0 con OLE DB su VC6

Qualcuno e` riuscito ad aggiornare/aggiungere record a un database su SQL
server 7 usando il provider OLE DB SQL server 7 o simile con Visual C++ 6 ?
Io non ci sono riuscito: ho creato un progetto standard MFC, ho aggiunto il
supporto per OLE DB con i relativi parametri. In Visual Basic 6 funziona
"bene" in Visual C++ 6 riesco solo a leggerli i record!!
grazie
Luca

...

Controlli il tipo di database cursor.

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

E` vero. A volte anche di piu`. Se poi consideri che non tutti la
possono pensare come te, direi che sono d'accordo al 100%.

Immagino che la tua risposta sia stata causata dalla mia inesperienza con i
newsgroup.
Se è così, ti chiedo qualche consiglio per riuscire ad utilizzare meglio i
newsgroup.
La mail "Namespace" l'ho inviata usando i servizi web del sito 
mailgate.org
.
Poi ho aperto il newsgroup con Outlook e ho visto che se apro la stessa mail
non viene visualizzato niente. Se vado in File/Proprietà/Dettagli/Messaggio
originale, il Content-Type è multipart/alternative.
A questo punto ti chiedo se devo rispettare qualche tipo di convenzione del
tipo spedire in formato "Testo normale", cosa che nello Opzioni di Outlook è
facilmente impostabile.
Ti ringrazio
Giuseppe
Newsgroup: it.comp.lang.c++
Titolo: Borland C++: compatibilita' template e STL?


Comment: Use it today to use it tomorrow      ID: Carlo Maupoil
iQCVAwUBNWusT0z8OVvSqsfJAQHEkwP/Rde1R+wKHA5xL1I+HuAUTB0klzLgPvYh
pP/a4plO1eZdaR8Ag25a8PrFO/BBpO/ChNYkECrhotYzoc4Lu7Vy0o4jA1MCFXrt
Zha6D0gyZSZ8T4jpRPseLRt61RXq9QfkDDMTXEQH4zb6wsQMijwHDyKrIsjFFIGw
UrFcUDOu4hc=
=qAHJ
-----END PGP SIGNATURE-----

per PC  forniscono la compatibilita' completa'?
*Completa*, *oggi* -- nessuno.  VC++ 5, con l'ultima patch
(SP3), e` "abbastanza" vicino, ma gli mancano ad esempio
le specializzazioni parziali di template; egcs, la versione piu`
attuale dei compilatori GNU (disponibile per Windows 32
ad esempio nella versione "MinGw32" di Mumit Khan) e`
ancora un pelino carente sui namespace; ecc, ecc.  Secondo
me, anche la _prossima_ versione di Microsoft e altri non
avra` ancora la compatibilita` COMPLETA -- si passera`
dal 99.44% di oggi a un 99.77% o giu` di li`.  Forse il primo
ad arrivare al 100% sara` egcs, grazie soprattutto alla sua
"e", che sta per "experimental" e significa che non si fanno
problemi ad apportare continuamente e rapidamente dei
cambiamenti anche incompatibili con versioni precedenti;
un compilatore "di produzione" ha piu` vincoli relativi al non
"guastare" codice che accettava nelle versioni precedenti.
Alex

                 Carlo
Caro Carlo, io ho avuto gli stessi problemi con la versione 4.5, poi sono
passato al C++Builder 1 e ho continuato ad averli.
Infine con il C++Builder 3 ho realizzato i miei sogni, fila tutto liscio
che č una meraviglia!
L'unica tristezza č che la ricca documentazione della Rogue wave in
dotazione con la versione 1, nella 3 non c'č piů.
Precedentemente provai a utilizzare le meravigliose STL della Sylicon
graphics, ma il risultato č stato solo parziale e in piů ho perso un
sacco di tempo. Meglio passare subito al Builder 3 (e forse va bene anche
il 5.02 che č compatibile).
Ciao, Marco.
P.S. dimenticati Microsoft.

 sacco di tempo.
Io sto usando quelle di Silicon Graphics (tra l'altro proprio su una
SGI).
La mia domanda in proposito e': sebbene sul libro di Stroustrup sia
previsto
ad esempio un metodo vector::at(), questo non c'e' nella STL di SGI.
Vale lo stesso anche per la STL del Builder?
Ciao e grazie.
    Jurgen Assfalg           
http://www.dsi.unifi.it/~assfalg/
    Universita' di Firenze - Dipartimento di sistemi e informatica
Newsgroup: it.comp.lang.c++
Titolo: Cercasi programmatori C/C++ su Linux e/o NT, INTERESSANTE!

Matrice srl ricerca collaboratori in ambito programmazione 
C/C++ su Linux e/o Windows NT per la sua sede di Milano.
E' indispensabile conoscenza della lingua inglese tecnica
(lettura libri programmazione, manuali, specifiche, etc.)
Sono gradite precedenti esperienze con Apache e Mysql,
trattamento CGI e Perl.
L'ambiente di lavoro e' estremamente stimolante, con ampie
risorse a disposizione per posizionarsi all'avanguardia
nella programmazione di software per l'interazione via
Internet e via telefono con basi di dati e sistemi di
comunicazione (fax, telefonia, SMS, email, web, news, etc).
Si prega rispondere via mail a:
 
curri...@matrice.it



 C/C++ su Linux e/o Windows NT per la sua sede di Milano.
Non sarebbe ora di farla finita?
EMG

 wrote in message
37360C9B...@flashnet.it...


Newsgroup: it.comp.lang.c++
Titolo: Re: cancellare spazi e ritorni a capo in coda a una stringa

 Grazie
Salve,
Boost ormai è considerata 'standard' da molti:
 
http://www.boost.org/doc/libs/1_35_0/doc/html/string_algo/quickref.html#id1291014
altrimenti, una funzione del genere:
// Attensione, modifica 's'.
std::string& TrimRight( std::string& s ) {
	std::string::size_type x( s.find_last_not_of( " \n\t\v\r" ) );
	if( x == std::string::npos ) {
		s.erase();
	} else if( x != s.size() - 1 ) {
		s.erase( x + 1 );
	}
	return s;
}
Saluti.

 dovrebbe diventare "xhyafh.loi"
In C potresti fare:
void removeTrailingSpaces(char *s) {
   char *last=0;
   char *p;
   for (p=s;*p;p++) {
     if (!isspace(*p))
	last=p;
   }
   if (last)
      last[1]=0;
   else
      *s=0;
}
che puoi applicare a c_str().
E.

che puoi applicare a c_str().
Il valore restituito da c_str() non dovrebbe essere modificato.


Già, è vero...
E.
Newsgroup: it.comp.lang.c++
Titolo: Dimensione campi

Ciao ragazzi. Siccome sto trascrivendo in Delphi un record visto in un
programma C++, mi occorre sapere una cosa. Ci sono dei campi di bit:
typedef struct { /* Structure for data blocks */
long int bgoff, fgoff; /* offsets from start of graphic blocks */
long int fgoff2, fgoff3; /* more overlay blocks */
unsigned long int user1, user2; /* user long data */
unsigned short int user3, user4; /* user short data */
unsigned char user5, user6, user7; /* user byte data */
unsigned char tl : 1; /* bits for collision detection */
unsigned char tr : 1;
unsigned char bl : 1;
unsigned char br : 1;
unsigned char trigger : 1; /* bit to trigger an event */
unsigned char unused1 : 1;
unsigned char unused2 : 1;
unsigned char unused3 : 1;
} BLKSTR;
Ecco... le ultime otto variabili dichiarate occupano insieme un solo byte
oppure 8? Mi interesa perchè si tratta di leggere le informazioni dal disco
fisso, quindi dovendo riscrivere questo record in Delphi ho bisogno di
sapere se dichiararle come un vettore di byte o come una singola variabile
di tipo byte.
Grazie in anticipo!!!
--
"La matematica è l'alfabeto con il quale DIO ha scritto l'Universo"
(G. Galilei)

 oppure 8?
Dal basso della mia cultura penso proprio che sia un solo byte!
Ciao
Francesco

 programma C++, mi occorre sapere una cosa. Ci sono dei campi di bit:
[...]
Ciao, purtroppo non so rispondere con certezza alla tua domanda. Credo che
molto dipenda dal compilatore e dalle sue impostazioni riguardo
l'allineamento dei tipi, ma puo' darsi anche che il tuo caso sia ben
definito dallo standard.
Quindi per evitare ogni dubbio ti consiglio di studiare la struttura dati
cosi' come viene generata dal compilatore utilizzando l'operatore sizeof() e
la funzione offsetof() dichiarata in <stddef.h>.
La trovi documentata su 
http://www.dinkumware.com/htm_cpl/stddef.html
Ciao,
Giambattista

 la funzione offsetof() dichiarata in <stddef.h>.
Si il fatto č che non avevo nessun compilatore C++ installato, nč avevo
voglia di installarne uno.
I sorgenti da cui dovevo procurarmi quel record sono i sorgenti di un
editore di livelli (per giochi) fatto in VC++. Quel record in particolare
era un record usato per leggere/scrivere informazioni su un file e quindi
dovendo rileggere le informazioni da Delphi (con cui sto sviluppando il mio
game) mi serviva sapere se dichiarare quegli otto campi come otto diversi
bytes o solo come uno.
Il problema comunque l'ho risolto dichiarandoli come un unico campo byte.
Grazie lo stesso a tutti.
--
"La matematica č l'alfabeto con il quale DIO ha scritto l'Universo"
(G. Galilei)

 bytes o solo come uno.
P.S.: Aggiungo che in passato ho programmato abbastanza in C++ ma non ho mai
usato campi bit e, nonostante allora fossi convinto che le informazioni
venissero realmente memorizzate come campi di bit, ora il dubbio si era
presentato perchč non avevo riscontri con le informazioni scritte. L'errore
perň era in un campo che avevo dichiarato piů lungo del dovuto, e questo mi
faceva shiftare o ciň che leggevo :)
Tutti possono sbagliare, sbagliando s'impara (spero di non dover leggere mai
questa frase in una sala operatoria).

Newsgroup: it.comp.lang.c++
Titolo: cin.getline

Un parere:
come mai quando lo eseguo mi attacca i cout "Codice commessa" e "Mittente"?
...praticamente la prima volta che utilizzo il
cin.getline(riga, 80);
strcpy(ncommessa,riga);
nn me lo lascia prendere e passa al cout dopo!
...credo che debba azzerare il buffer con una cosa tipo fflush... ma nn
saprei...
grazie
Francesco
char ...
char riga[80];
cout<<"Codice commessa: \n";
cin.getline(riga, 80);
strcpy(ncommessa,riga);
cout<<"Mittente: \n";
cin.getline(riga, 80);
strcpy(mittente,riga);
cout<<"Destinatario: \n";
cin.getline(riga, 80);
strcpy(destinatario,riga);

Vedi Franz.. tu mi rispondi che io non devo farmi fare il progetto di
C++ e poi vai a fare una domanda come questa... 
Della serie io sono coerente con quello che dico. 
La prossima volta rompi meno.
Ah... come dici tu...cmq certe cose potresti chiederle ai tuoi compagni
invece che chiederle qui. Anche perchè io saprei già la risposta
Be'... la tua risposta cercala pure qui. Io non te la dico. :P
p.s. il tuo codice di getline.. che mi hai scritto nell'altro msg. 
1° lo sapevo
2° è lungo per niente. si può fare meglio.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Vedi Franz.. tu mi rispondi che io non devo farmi fare il progetto di
Esiste la posta elettronica per queste stupidaggini.
Usala.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]
Newsgroup: it.comp.lang.c++
Titolo: per CApitan Catarro

ti ho mandato un'e-mail, guarda la tuaposta
sic...@ciaoweb.it

ti ho mandato un'e-mail, guarda la tuaposta
La smettete di usare il ng per le comunicazioni tra di voi ???
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."
Newsgroup: it.comp.lang.c++
Titolo: Programmare le porte I/O in Builder

Come utilizzare le vecchie istruzioni outportb/inportb del c++ in
Builder 4.0??
ciao 
Nicola
nm...@ssst.it
--
Posted from 
ssst.ssst.it
 [195.31.212.195]
via Mailgate.ORG Server - 
http://www.mailgate.org


nm...@ssst.it
Hi, 
non puoi, molto semplice :-)
Ci sono in giro su internet delle librerie apposite, io con winnt 4
uso Map Mem Plus, che e' un driver appositamente scritto per
comunicare con le porte sotto nt.
Per Win9x devono esserci delle librerie analoghe, ma non so dirti
quali.
Contattami per ulteriori info...
bye
Remo Franceschelli - 
r.franc...@flashmail.com
http://www.geocities.com/SiliconValley/Lakes/7668/
ICQ# 25535629

...


Newsgroup: it.comp.lang.c++
Titolo: Come individuare un oggetto in memoria ?

Esempio.
Io apro una sessione di Notepad e carico un file di testo.
Il file che ho caricato in notepad è associato ad un Handle ?
Se la risposta è affermativa , come lo individuo ? .. con quale chiamate 
API ?
Grazie
--
Juggernaut Berserk
EvilBreath@LO_SKIFO.hotmail.com
per rispondermi togli LO_SKIFO dall'indirizzo
______________________________________________________
Get Your Private, Free Email at 
http://www.hotmail.com
--
Automatic posted from 
f16.hotmail.net
 [207.82.250.27] (may be forged)
via Mailgate Server - 
http://www.mailgate.org

Che io sappia solo Notepad può conoscere la handle con cui ha aperto il file
di testo.
In realtà la handle non è fissa ma viene restituita dalla funzione di open
di un file (OpenFile). Una volta ottenuta questa handle puoi fare quello che
vuoi con il file (leggere, scrivere, azzerare, troncare, eliminare....). A
meno che non sia diventato pazzo (stress?), penso che nessun programma può
accedere alla handle di un file creato o aperto da un altro programma.
Con umiltà.
Giuseppe.
http://space.tin.it/computer/giparrel
jopa...@tin.it


Concordo.
A meno che non sia il programma stesso a passartelo...  ;-)
Livio
-------------------------------------------------------
|        God is real, unless declared integer         |
-------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Un dubbio che mi assilla


+-----------------+
| Toro on the Net |
+ ^^^^^^^^^^^^^^^ +-----+
|   /===============\   | First website about
|-=> 
www.toroclub.it
 <=-| Torino Calcio
|   \===============/   | and its supporters !
+-----------------------+


Io faccio un mix: CI PLAS PLAS ...

Come hai detto tu.
Ciao.
Antonio Donatiello

all' inglese "si plas plas" ??
Dipende da che lingua vuoi usare ;-)

>come si pronuncia esattamente 'C++' ?
Ragazzi, siamo in Italia... parliamo l'italiano! Non vi viene più (anzi ++)
naturale parlare in italiano? Cmq la pronuncia esatta in assoluto è (rullo
di tamburi): 'C++' :-)

all' inglese "si plas plas" ??
Io lo chiamo "ci plas plas".
Ciao by Stefano from Italy
http://freeweb.aspide.it/free/imperial

Ragazzi, siamo in Italia... parliamo l'italiano!
Se é per questo, trattandosi di un linguaggio di programmazione, sarebbe
meglio pronunciarlo all'inglese.


come si pronuncia esattamente 'C++' ?
Puoi dire in italiano "Ci plus plus" o in inglese "Si plus plus", in
ogni caso *mai* "plas", essendo "plus" una parola latina va
pronunciata come tale (esattamente come i "media" non li dovresti mai
chiamare "midia").
Saluti

Mi hai fatto venire una curiosità: non è che qualche pazzo si è mai messo a
scrivere un compilatore c serio in italiano?

scrivere un compilatore c serio in italiano?
Che io sappia no, secondo me chi vuole programmare deve impararsi l'inglese
e non aspettare che qualcuno tiri fuori un compilatore in italiano. Immagina
che schifo la traduzione di ogni termine tecnico, e poi c'é il rischio che
lo si capisca ancor meno.


pronunciata come tale
Scusa ma dissento; plus e' anche una parola inglese che in inglese si
pronuncia "plas" (ho appena visto sul mio vocabolario :))
Ma siamo proprio OT !!!
Secondo me si dovrebbe pronunciare come lo pronincia chi l' ha
sviluppato, e quindi forse all' inglese...


e poi c'é il rischio che lo si capisca ancor meno.
#includi <grafica.h>
doppio a;
lungo x, y;
svolazzante z;
vuoto main()
{
    per ogni (intero i = 0) tale per cui (i < 10) incrementa i ed esegui: {
[...]
ok, ok... basta cosě! :-))))

lo si capisca ancor meno.
Esatto, come quelle schifezze del VBA in italiano. Si capisce ancora
meno dell'inglese, ai tecnico non piace perché il ciclo WHILE lo
vogliono chiamare sempre WHILE e non MENTRE :-)

>vuoto main()
Nein.
vuoto principale()
oppure
intero principale (intero n_arg, carattere **v_arg)

esageriamo:
intero lontano Pascal FinestraPrincipale(Istanza istanza, Istanza
precIstanza, stringa lontana puntLineaComando, intero nComandi);
Mmm... cavoli, che thread idiota... vabbe' ogni tanto ci vuole pure questo,
no?

>come si pronuncia esattamente 'C++' ?


>Ei, a proposito, si pronuncia "pąscal" o "pascąl" ???
Eddai, su! Se questo thread non lo era gią prima, OT, lo č diventato
sicuramente ora! :-)

Ei, a proposito, si pronuncia "pàscal" o "pascàl" ???
A questo punto direi Pascàl, con l'accento sulla seconda "a", in
quanto Pascal era francese.
Ciao,
<manoo>

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

 *NATHAN*
Crosspostato!
-- 
:wq
Saluti.
*NATHAN*

...

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ (argh)

Sono vari anni che lavoro con i linguaggi C e C++, ritengo di aver
acquisito una buona esperienza soprattutto con le librerie OWL per la
gestione dell'interfaggia di Windows ... oggi mi trovo nella
situazione, antipatica, di vedere il mio linguaggio preferito morire
in favore del Builder che mi costringerebbe a cambiare molto, troppo
codice scritto da tempo...
Chi ha esperienza sufficiente sia in ambiente Borland C++ (5.xx) che
in M$ VC++ (5.xx) da potermi dire quali sono le difficolta' maggiori
nel migrare le proprie conoscenze da Borland a M$ ??
Dovrei migrare una "applicazioncina" (600 moduli circa) che utilizza:
- Videate che creano control on the fly con strutture simili a pagine
  HTML (links, campi di edit, pulsanti ..  la solita roba)
- interfaccia database Oracle o Interbase
- gestione delle comunicazioni inter macchina via TCP/IP
  (l'interfaccia verso il WinSock la gestisco gia' tramite API
   standard, niente roba proprietaria Borland)
- DLL a go go che si agganciano alla applicazione master per
  fornire funzionalita' non previste o personalizzate)
AIUTO !
Grazie, Nicola.

 
Passando a Builder 3.0, non dovresti avere grossi problemi. In 
particolare, se volessi continuare a manutenere e/o sviluppare
con OWL, l'ultima versione mette a disposizione sia OWL che MFC.
Quel che cambia e' l'IDE. Nel caso volessi convertire la tua
applicazione utilizzando la VCL... ti consiglio di riscriverla!
La VCL, per quanto sia molto legata all'object oriented del Object 
Pascal, non e' assolutamente una cattiva libreria di classi. 
La cosa piu' visibile, paragonando C++Builder e Borland C++ 5.xx,
e' la rapidita' e la facilita' di sviluppo. Builder supporta 
pienamente il linguaggio ANSI C++, ma e' necessario seguire piccole
precauzioni per mettere insieme VCL e C++.

codice scritto da tempo...
Veramente il C++ Builder 3, livello Professional e superiori,
dovrebbe supportare le OWL senza costringerti proprio a niente.
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: [niubbo] Dichiarazione di oggetti globali con allocazione dinamica

Salve a tutti
e' da poco che mi sono avvicinato alla OOP ed ho da porvi alcuni quesiti.
In BCB6 devo creare un oggetto visibile sull'intera applicazione.
Volendo definire l'oggetto globale all'applicazione, proprio come se fosse
una variabile globale, rischio di violare una regola della OOP che consiglia
di non usare variabili globali. Immagino che tale regola valga non solo per
le variabili globali, ma anche per gli oggetti definiti globalmente. Se
cosi' fosse, dove/come posso definire il mio oggetto affinche' non violi le
regole della OOP e sia visibile su tutta l'applicazione?
Altro problema.
Ho provato a definire l'oggetto in modo globale usando l'allocazione
dinamica della memoria.
Ho riscontrato che la sintassi che solitamente uso per l'allocazione
dinamica mi restituisce un errore in fase di compilazione (Type name
expected; Multiple declaration for mioParser; Earlier declaration of
mioParser). La sintassi usata e' la seguente:
classeParser *mioParser;
mioParser = new classeParser;
Se invece modifico la sintassi nel seguente modo, compila il tutto
regolarmente:
classeParser *mioParser = new classeParser;
Come mai nel secondo caso compila regolarmente e nel primo caso no? Le due
sintassi non sono equivalenti?
Ringrazio chiunque riesca a chiarire i miei dubbi.
Vincenzo Camporeale.

 sintassi non sono equivalenti?
No. Nel secondo caso hai (correttamente) una dichiarazione/definizione, 
mentre nel primo hai una dichiarazione seguita da un'"istruzione" che 
inizializza (eventualmente una seconda volta) l'oggetto in questione. 
Siccome le istruzioni non sono ammesse al di fuori delle funzioni, il 
compilatore non capisce e te la interpreta come una ridichiarazione.
Infine, avere
 > classeParser *mioParser = new classeParser;
non e' secondo me una buona idea, perche' non avrai modo di deallocare 
l'oggetto all'uscita. Meglio se usi uno smart pointer, tipo:
std::auto_ptr<classeParser> mioParser(new classeParser);
  bye
	av.