Newsgroup: it.comp.programmare
Titolo: Visual C++ .NET

Scrivo normali listati e librerie di classi in C++ e li compilo
regolarmente in Dev-Cpp.
Quando provo a ricompilarli in Visual C++ .NET mi dà svarati errori in
compilazione.
Questo accade quasi sempre, anche con listati presi da libri o tutorial.
A questo punto, siccome so che Microsoft ha i suoi standard, mi chiedo:
per imparare a programmare bene in C++ ho realmente bisogno di usare un
framework all'avanguardia come il .NET?
Francamente mi trovo molto più a mio agio con Dev-Cpp.
Secondo voi ha senso mettersi a lavorare in un C++ che non è quello
standard che usano libri e tutorial?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 quello standard che usano libri e tutorial?
Detta così, no.
Ma ovviamente non è così semplice la questione...
-- 
Gerolamo 

 framework all'avanguardia come il .NET?
Sei sicuro? Il compilatore di Visual Studio 2003 e` uno dei piu`
aderenti allo standard che ci siano, difatti hanno Herb Sutter e Lippman
tra le loro fila apposta per migliorare la sezione C++
Ho idea che tu abbia semplicemente sbagliato i flag di compilazione.
Ciao! 
-- 
Lawrence Oluyede (l dot oluyede at virgilio dot it)
"If the implementation is hard to explain, it's a bad idea"
      The Zen Of Python, Tim Peters

vi do un link con una classe mia ed una sua implementazione, non è un
tutorial ma è comunque un file che devcpp compila, visual studio no
http://www.neoborn.com/users/pinkfloyd/hypernode.zip
grazie per l'attenzione
Gerolamo ha scritto:




-- 


 
http://www.neoborn.com/users/pinkfloyd/hypernode.zip
Il programma non e` corretto, non si puo` dichiarare main() senza il
tipo di ritorno.
Che errori trova il VC++?
Ci sono poi altri "orrori" che non impediscono la compilazione, ma
andrebbero evitati: mega abuso di #define, sistema di inclusione
anomalo, mancanza di "const" dove sarebbe utile, membri tutti
pubblici, limite inutile MAXLINKS a carico dell'utilizzatore, ...
        Mauro

         Mauro
per quanto riguarda gli orrori, potrebbe senz'altro essere utile in un
secondo tempo ragionarci su (è la mia prima classe)
ecco il buildlog:
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(16) : error
C2146: syntax error : missing ';' before identifier 'value'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(16) : error
C2501: 'HyperNode::TYPE' : missing storage-class or type specifiers
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(16) : error
C2501: 'HyperNode::value' : missing storage-class or type specifiers
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(19) : error
C2065: 'MAXLINKS' : undeclared identifier
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(31) : error
C2061: syntax error : identifier 'TYPE'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(32) : error
C2146: syntax error : missing ';' before identifier 'GetValue'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(32) : error
C2501: 'HyperNode::TYPE' : missing storage-class or type specifiers
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(32) : warning
C4183: 'GetValue': missing return type; assumed to be a member function
returning 'int'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(41) : error
C2065: 'TYPE' : undeclared identifier
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(41) : error
C2146: syntax error : missing ')' before identifier '_value'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(41) : error
C2761: 'void HyperNode::SetValue(void)' : member function redeclaration
not allowed
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(41) : error
C2059: syntax error : ')'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(42) : error
C2143: syntax error : missing ';' before '{'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(42) : error
C2447: '{' : missing function header (old-style formal list?)
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(46) : error
C2143: syntax error : missing ';' before 'HyperNode::GetValue'
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(46) : error
C2501: 'TYPE' : missing storage-class or type specifiers
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(46) : error
C2371: 'TYPE' : redefinition; different basic types
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(48) : error
C2065: 'value' : undeclared identifier
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(86) : error
C3861: 'MAXLINKS': identifier not found, even with argument-dependent
lookup
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(99) : error
C3861: 'MAXLINKS': identifier not found, even with argument-dependent
lookup
c:\Documents and
Settings\ale\Desktop\Programmazione\HyperNode\HyperNode.cpp(99) : fatal
error C1903: unable to recover from previous error(s); stopping compilation
Generating Code...
c:\documents and
settings\ale\desktop\programmazione\hypernode\hypernode.cpp(77) : warning
C4715: 'HyperNode::SetLink' : not all control paths return a value
alcuni errori sono generati dal fatto che definisco altrove delle macro,
che non vengono riconosciute
altri sono nelle funzioni: ad esempio in SetLink pare che l'errore sia
dovuto al fatto che potrei anche non inizializzare value
ma quello che mi lacia perplesso è che il devcpp compila tutto, tanto che
ci stavo facendo dei programmini che, ad esempio, trovano la strada per
andare da uan città ad un'altra ecc... (sia usando direttamente gli
HyperNode sia includendoli in oggetti nuovi o anche usando value come
puntatore ad oggetto)
se avete pazienza di leggere tutto forse potreste darmi una mano a capire
cosa cambiare per rendere il tutto corretto
ciao, grazie!


 ciao, grazie!
uppo speranzoso... 
nel frattempo sono passato stabilmente al .net e riesco a compilare i miei
nuovi sorgenti normalmente, ma incontro comunque problemi a compilare quel
sorgente (compilato in dev cpp) 
una volta definiti type e maxlinks all'interno della libreria hypernode,
in compilazione non compaiono più errori relativi ai tipi, ma ci sono
altri errori:
per ogni funzione, mi segnala una doppia definizione...
log:
main.obj : error LNK2005: "public: void __thiscall
HyperNode::SetValue(int)" (?SetValue@HyperNode@@QAEXH@Z) already defined
in HyperNode.obj
main.obj : error LNK2005: "public: int __thiscall
HyperNode::GetValue(void)" (?GetValue@HyperNode@@QAEHXZ) already defined
in HyperNode.obj
main.obj : error LNK2005: "public: int __thiscall HyperNode::SetLink(class
HyperNode *)" (?SetLink@HyperNode@@QAEHPAV1@@Z) already defined in
HyperNode.obj
main.obj : error LNK2005: "public: class HyperNode * __thiscall
HyperNode::GetLink(int)" (?GetLink@HyperNode@@QAEPAV1@H@Z) already defined
in HyperNode.obj
main.obj : error LNK2005: "public: bool __thiscall
HyperNode::ThereIsOnePlace(void)" (?ThereIsOnePlace@HyperNode@@QAE_NXZ)
already defined in HyperNode.obj
main.obj : error LNK2005: "public: int __thiscall
HyperNode::SearchLink(class HyperNode *)"
(?SearchLink@HyperNode@@QAEHPAV1@@Z) already defined in HyperNode.obj
main.obj : error LNK2005: "public: int __thiscall
HyperNode::DeleteLink(class HyperNode *,bool)"
(?DeleteLink@HyperNode@@QAEHPAV1@_N@Z) already defined in HyperNode.obj
main.obj : error LNK2005: "public: int __thiscall
HyperNode::DeleteLink(int)" (?DeleteLink@HyperNode@@QAEHH@Z) already
defined in HyperNode.obj
Debug/prova.exe : fatal error LNK1169: one or more multiply defined
symbols found
