Différence entre C++ et Visual C++ - C++ - Programmation
Marsh Posté le 19-10-2002 à 12:56:43
Bah C++ c'est le langage et Visual C++ c'est l'EDI de M$ pour faire du C++..
Marsh Posté le 19-10-2002 à 12:58:36
Donc en utilisant l'editeur ce MS Visual C++ je reste bien dans la prog C++ je n'ai pas un dérivé bancale... Est cela ?
Marsh Posté le 19-10-2002 à 13:12:31
C'est pas Bjarne Stroustrup qui avait dit que visual n'était pas un compilateur c++ mais un compilateur windows (ou qqch du style, je retrouve plus l'article)
Marsh Posté le 19-10-2002 à 13:15:39
Je crois que c'est Microsoft eux même qui le disent. Sinon, je crois l'avoir vu aussi dans Thinking in C++.
Pour avoir une idée de ce que valent different compilo C++ :
http://casteyde.christian.free.fr/cpp/benchmarks/
Marsh Posté le 19-10-2002 à 13:19:57
He bhe le compilo de Borland est pas très bien placé ... domage qu'y ait pas Delphi dans le test aussi
Marsh Posté le 19-10-2002 à 13:55:02
Taz@PPC a écrit a écrit : Visual C++ force le programmeur a abuser de tout son foutoir de l'API windows alors que les std::string et STL existent |
mais quel est le rapport entre la bonne vieille API Win32 et la stl ?
Marsh Posté le 19-10-2002 à 14:01:21
je voulais dire un et.
marre de Cstring
Visual C++ force le programmeur a abuser de tout son foutoir et de l'API windows alors que les std::string et STL existent
boucoup de choses standards vont bien meiux le boulot
apropos d'API, je viens de voir un pdf sur le port d'appli sous Unix/Linux et M$ s'est risqué a mettre codes API Windows et API Linux en parallèle... c'est un massacre!
Marsh Posté le 19-10-2002 à 14:06:45
Taz@PPC a écrit a écrit : je voulais dire un et. marre de Cstring Visual C++ force le programmeur a abuser de tout son foutoir et de l'API windows alors que les std::string et STL existent boucoup de choses standards vont bien meiux le boulot apropos d'API, je viens de voir un pdf sur le port d'appli sous Unix/Linux et M$ s'est risqué a mettre codes API Windows et API Linux en parallèle... c'est un massacre! |
pkoi tu peux pas utiliser std::string ? (jamais essayé, pas vraiment eu besoin de ca). Sinon j'ai des std::list/deque partout dans mon code et g pas de pb avec ca....
Marsh Posté le 19-10-2002 à 14:10:46
par contre, je dois dire que j'utilise pas celle (stl) fourni de base avec vc++ mais celle de sgi (soucis avec celle de vc6, pas essayer avec celle de vc7)
Marsh Posté le 19-10-2002 à 18:20:07
Kristoph a écrit a écrit : je crois l'avoir vu aussi dans Thinking in C++. |
http://www.mindview.net/Books/TICP [...] CPP2e.html
Citation : |
Thinking In C++ est un livre pour debutants, pas avec des templates de la mort qui tue...
Je ne dirais pas ce que je pense de Visual... ca pourrais choquer quelques personnes.
chrisbk a écrit a écrit : pkoi tu peux pas utiliser std::string ? (jamais essayé, pas vraiment eu besoin de ca). Sinon j'ai des std::list/deque partout dans mon code et g pas de pb avec ca.... |
le probleme avec Visual C c'est pas que c'est impossible d'utiliser les libs standards C++, ca on peut toujours le faire.
le probleme c'est que peu de personne le font, et que pour programmer proprement avec Visual C il faut vraiment "le vouloir". c'est difficile avec expliquer mais c'est ce que je ressent a chaque fois.
C'est comme entre Java et C++, je trouve que c'est plus facile de faire un programme propre et bien foutu en Java qu'en C++ meme si c'est tout a fait possible en C++.
J'ai l'impression que le langage ne facilite pas le tache a cause de pleins de trucs et de details (mais au final ca compte).
Par exemple quand on utilise la lib Qt, ca donne "envie" de programmer proprement, on sent que c'est naturel.
Marsh Posté le 19-10-2002 à 23:08:28
tanguy a écrit a écrit : Par exemple quand on utilise la lib Qt, ca donne "envie" de programmer proprement, on sent que c'est naturel. |
Ouais c clair ... avec visual, t'as plutôt pas envie de le brusquer en utilisant des trucs qu'il connait pas, de peur que ça lui plaise pas ... et puis après c'est un cercle vicieux : tu commence à utiliser un fonction de ses bibliothèques et tu dois utiliser une classe à lui ... et là c'est cuit ... t'as signé ton pacte avec le mal ...
C clair que c'est moche Visual, à part l'IDE qui a quelques côté pratique tout de même
Marsh Posté le 20-10-2002 à 04:31:46
Visual C++ 6:
Il a des problèmes notoires à traiter les templates correctement.
Son système de complétion ne marche pas avec.
Il a plein d'extensions non-standard activées par défaut.
Et si on coche la case "Project Settings/C++/Customize/Disable language extensions", alors les includes STL "standards" font des erreurs (pas des warnings).
Si on règle "Project Settings/C++/General/Warning level" au maximum (4), les includes "standards" font des centaines de warnings.
Il a des bogues "mineurs" qui n'ont jamais été corrigés:
int g = 2147483649; //vaut -2147483647, aucun warning
int tab[4]= {}; //Le standard le permet, pas VC++ 6.
Le code généré est intimement lié à Windows.
Une violation mémoire est traitée comme une exception C++. Ce qu'elle n'est pas.
Par contre:
L'environnement est sympa, le débogueur pas mal.
Tout n'est pas rose non plus ailleurs.
Ils ont décidé de se rapprocher du standard, VC++ 7 (.NET) est bien mieux.
Bref:
Si tu ne fais pas attention, tu apprends et fait du VC++, absolument pas du C++ standard et portable.
Marsh Posté le 20-10-2002 à 11:07:21
Alors en novice sur le language et si j'ai bien compris tous les commentaires trés intéressant, si je ne connais pas encore le language et que mon objectif est de construire des applis dédiées au système microsoft (NT et 2000) Visual C++ en version 7 n'est pas si mal pour cela.
Je n'ai pas besoin de me jeter sur du pur C++ en dehors de Visual ?
Est ce bien cela ?
Marc
PS : merci des réponses déjà apportées...
Marsh Posté le 20-10-2002 à 14:48:04
Il n'y a pas de bonnes justification pour ne pas suivre les normes. Tu peux très bien faire du C++ aux norme sous windows, ne serait-ce que en utilisant Borland C++ ou G++ qui sont tout deux dispo.
Marsh Posté le 20-10-2002 à 14:59:01
- les strings
a mon humble avis, ce n'est pas que Microsoft veut imposer ses CString, mais plutot que Visual C++ a fini par etre largue par le standard C++, mais que les MFC n'ont pas pu pour évoluer pour une raison de compatibilité ascendante. C'est pour la même raison qu'il y a des "BOOL" et pas des "bool" dans les MFC.
- le debugger (débogueur ? dévermineur ?)
Il est vraiment très sympa. Par exemple gdb (le debuggeur GNU) est très lent par rapport à lui
- extensibilité
C'est naze. Pour faire un plugin intéressant, faut signer un accord de non-divulgation avec MS.
Sinon on peut faire des extentions en C++, mais c'est limité. J'ai fait un plugin qui permet de le scripter en Python. Mais la encore MS c'est réservé une partie de l'API de VC++ pour eux, bref mon plugin ne peut pas controler VC++ autant que vbscript...
- débuter
A mon avis, commence a apprendre le C++ independemment de la programmation Windows. Favorise les bibliotheques standards que celle de MS.
Marsh Posté le 20-10-2002 à 16:42:42
nanebac a écrit a écrit : Alors en novice sur le language et si j'ai bien compris tous les commentaires trés intéressant, si je ne connais pas encore le language et que mon objectif est de construire des applis dédiées au système microsoft (NT et 2000) Visual C++ en version 7 n'est pas si mal pour cela. |
Tu telecharges Dev-C++, c'est base sur mingw qui est la version windows de gcc
c'est libre, gratuit, facile, standard ect...
avec ca t'as beaucoup plus de chance d'apprendre a programmer proprement et en utilisant les libs standards qu'avec MS Visual C--
Cet outil est parfait pour les debutants !
les seuls grands defauts de dev-c++ sont :
1 - y'a pas ecrit Microsoft dessus
2 - pas assez cher mon fils...
http://www.bloodshed.net/devcpp.html
Marsh Posté le 20-10-2002 à 16:45:12
tanguy a écrit a écrit : 1 - y'a pas ecrit Microsoft dessus |
spa un défaut ça
Marsh Posté le 20-10-2002 à 16:54:04
Ca m'a l'air vachement bien ce truc !!
Ca donne une bonne raison pour rester sous Windows tout en faison de la prog
faut que j'essaye ça !
Marsh Posté le 19-10-2002 à 12:54:26
Je souhaite débuter en programmation C++ et avant toute chose quel est la différence entre ces deux ?
Merci
---------------
http://www.arome.org/