J'ai la possibilité d'utiliser c++ builder ou Visual c++ 6.
Sur quels critères choisir ?.
Quel est l'avantage d'utiliser Visual c++ par rapport à Builder C++?
Merci
Version imprimable
J'ai la possibilité d'utiliser c++ builder ou Visual c++ 6.
Sur quels critères choisir ?.
Quel est l'avantage d'utiliser Visual c++ par rapport à Builder C++?
Merci
Les deux produits ne sont pas comparables.
Les deux sont valables pour programmer en C++ pour Windows.
- Les applications C++Builder 6 sont portable sous Linux avec la CLX, ce n'est pas le cas pour VC++
- Borland C++Builder est un RAD, c'est à dire que tu peux développer plus rapidement des interfaces utilisateurs et des applications base de données, et presque aussi facilement qu'avec VB, avec la souris par glisser/coller de composants tout faits.
bin pour visual :
- un debugueur extremment puissant
- une documentation programmation c/c++ windows qui est une des meilleure (la meilleure ?) sur le marché, msdn
- une programmation windows a la source ( = proche de l'os windows)
personnellement ya un truc qui me plait pas avec les RAD justement, c'est que tu controles pas ... c'est pour ca que je n'utilises pas jbuilder par exemple.
des que tu veux modifier un truc qui n'est pas dans l'ide, bin tu te prends la tete tout simplement, et surement plus que si tu fesais l'effort d'apprendre comment ca marche ...
quand au debuggueur de borland, je serais curieux de le voir, pasque pour l'instant j'ai rien trouvé de mieux que celui de vc++ (pour le c/c++) tout os confondu ...
pour l'anglais/francais on en a deja parlé dans un autre topic, et ce n'est surement pas un argument (mais ya msdn francais qui existe pour ceux qui ont la licence).
msdn n'est pas un fouilli, il est extremement bien foutu.mais effectivement quand on sait pas ce qu'on cherche c'est comme quand on est dans une biblio, on sait pas par ou commencer ....
dans le tutorial que tu me donnes ya pas un gramme de mfc dedans ...
en ce qui concerne le dev des jeux, alors la j'ai d'enormes doutes en ce qui concerne les performances, et vaut mieux developper 2 versions, une pour linux et une pour windows (quel que soit l'ide) plutot que d'utiliser des bibliotheques generiques, car ce sont 2 systemes qui n'ont pas du tout la meme facon de fonctionner aussi bien au niveau du noyau que des peripheriques ...
pourquoi sans passer ? pasque ca reste encore du RAD c++, c'est a dire entre vb et vc++...
pour ceux qui developpent, utilisez borland ...
pour ceux qui developpent "vraiment" sous windows, rien ne vaut visual ... pour l'instant.
:evil: En ce qui me concerne je suis habitué à C++ Builder, j ai essayé de passer au visual C++ pour des raisons professionnelles. Mais a mon avis le fait que visual C++ soit utilisé dans beaucoup de boites est tout simplement stupide !
Les compétences que j ai acquise avec Borland C++Builder sont perdues avec Visual C++ qui est d'un compliqué à s'arracher les cheveux.
Pourquoi se prendre la tête avec VC++ à faire une interface graphique alors que Borland C++Builder nous propose une solution simple et trés rapide pour les créer facilement ?
En ce qui concerne la prog système je ne vois pas du tout en quoi Borland serais moin bien que VC++.
Je peux pas parler en connaissance des deeux edis. Mais je peux dire que pour le developpement d'application qui demandent bcp de ressoruces, il n'y a pas perte de perforamnces en utilisant CBuilder. De même qu'il ne doit pas y en avoir en utilisant Visual.
J'utilises DirectX avec Borland, et il n'y a aucun problème, si ce n'est que depuis dx8 je crois que Microsoft refuse de livrer les librairies pour Borland avec le SDK. C'est lache non ? :) quoiqu'il en soit si on a reussi a telecharger le SDK, on a aucun mal a telecharger les librairies Boralnd.
slut tous,
j aimerai me mettre au c++ connaissant déjà delphi, java, php.
mais apparement il vaut mieux prendre borland selon vous.
je voudrais utiliser le c++ pour faire des animations 3D et des ptit jeux, j ai opter pour l open GL donc je suppose que vous me conseillerez borland C++ ??
Je suis passé au C++ depuis environ 1 ans après avoir atteint les limites du C. Je développe essentiellement des applications d'acquisition de donnée.
J'ai eu la possibilité d'essayer plutôt longuement VC++ et C++Builder.
Comme tout le monde l'a remarqué, C++Builder est un RAD alors que VC++ ne l'est pas.
Cependant C++Builder n'a pas que des avantages.
Le debugger est assez puissant mais celui de VC++ a des possibilité supplémentaire, en particulier le pas à pas dans des macros.
La fonction de "code completion" de l'éditeur VC++ est plus tolérante aux erreurs de syntaxe qui précède le code à compléter, ce qui évite d'avoir trop souvent un sablier pour rien.
VC++ est puissant mais compliqué. Les MFC sont très proches de l'API windows, ce qui rend difficile la programmation de haut niveau à l'aide de composants graphiques ou autre mais facilite l'accès aux fonctions de l'API en les encapsulant dans des objets C++ (cela dit, on peut aussi utiliser les MFC dans C++Builder, même si cela parait idiot à priori).
Après beaucoup d'efforts, j'ai renoncé à utiliser VC++ à cause de l'omniprésence des macros qui rendent le code incompréhensible (ils n'ont pas dû suivre de cours de programmation chez Billou) et de l'envie d'utiliser un vrai RAD!
Avantages de C++Builder :
- interface utilisateur plus agréable
- vrai RAD
- code compréhensible (halte aux Wizards!)
- compatibilité ANSI
- portabilité vers Linux (si on se contente des objets CLX)
Quelques défauts dans C++Builder :
- héritage mutiple interdit avec des objets VCL (les objets viennent de Delphi)
- la VCL n'est pas mutithread : il faut changer de thread pour accéder aux fenêtres
- la traduction de l'aide à supprimé des références de l'index (ex :TObject n'y est pas) si cela peut être corrigé, merci de me le dire.
j'espere que ca ne derange pas trop ce debat
juste une petit question
la version VC++ .net actu
encore pas RAD ?
je sais,vous allez me dire : essayer et voyez ,mais malheuresement j'ai arreté d'utiliser VC depeuis sa 5eme version vu que ca coute un peu chere
et que je ne l'utilise que pour etudier
Merci
Dans les versions recentes de C++ builder, il me semble que le "code completion" a été bien revu, du moins il est bien plus sople dans la version 6 que dans la version 4.
Je n'ai jamais eu non plus de prblèmes pour utiliser les fonctions de l'API avec la VCL. La plupart du temps il y a deds propriétés style Handle qui sont prévues pour etre utilisée lorsque l'on veut utiliser des fonctions de l'API, idem pour HDC, et pas mal d'autres trucs.
Sinon, j'aimerais poser une question, j'ai jamais eu trrop l'occasion de programmer avec des threads, et j'ai du mal a voir ce qui pose problème dans le fait que la VCL ne soit pas multithread. Queslqu'un pourrait m'expliquer ?
C'est vrai. Le seul problème avec les API c'est qu'elles ne sont pas objet.Citation:
Je n'ai jamais eu non plus de problèmes pour utiliser les fonctions de l'API avec la VCL.
Si tu n'as besoin que des événements, pas de problème : ils sont gérés par l'objet Application.Citation:
j'ai du mal a voir ce qui pose problème dans le fait que la VCL ne soit pas multithread
Les threads sont utiles dans le cas de tâche de fond indépendantes du fonctionnement de l'interface. On peut parfois utiliser des timers sauf dans certains cas lorsqu'il n'y a pas d'objet Application (dans une DLL). Mais cela sort du sujet.
Pour diverse raison, j'ai abandonné l'usage des threads dans un projet. J'ai contourné le problème en déplacant la boucle des messages cad, et ecrivant une boucle style
Pour des taches de fonds peu importantes, il y a aussi OnIdle().Code:
1
2
3
4
5
6
7
8
9 while (Condition) { Application->ProcessMessages() . . . // Traitement particulier }
D'après ce que j'ai vu l'usage des threads n'est indispensable que lorsque l'on utilise des fonctions externes, qui ne sont pas prevues pour etre dans une boucle de messages, et qui bloquent l'application, comme certaines fonctions de l'API pour communiquer avec l'imprimante. Cela dit, dans certains cas, l'usage de threads simplifie les algorithmes.
Pour avoir utiliser les deux, voici mes conclusions :
Général :
BCB6++ : programme lourd, compilateur de qualité moyenne, complétition qui fonctionne rarement pour peu que le projet devienne complexe, RAD très efficace, débugger très limité suaf pour l'assembleur.
Comprend les MFC, la CLX et la VCL, doc correcte.
VC6 : programme lourd aussi, compilateur supérieur à celui de borland mais c'est pas encore ça, complétition corrccte, RAD inexistant, Bon débugger, mais pas pour l'asm
VC7 : programme bcp moins lourd, bon compilateur mais ne vaut pas gcc ( ou mingw32), bonne complétition, RAD très moyen, très bon débugger mais toujours pas pour l'asm, comprend les MFC seulement
Librairie :
MFC : très complexes, mais efficaces, codées en C++ on peut donc fouiller dedans plus facilement, non portable
VCL : simple, assez efficace, codée en Delphi, mais on est pas censé fouiller dedans (ça tombe bien, puisqu'on peux pas), non portable
CLX : simple aussi, mais plus limité que les deux précédentes, assez lourde, toujours codée en Delphi, mais portable sous Linux (et Linux seulement).
Conclusion :
passez à Dev-C++/wxWindows, c'est très portable, rapide, facile, efficace et très portable.
Et qu'en est-il pour le respect du C++ ANSI, Borland en font leur cheval de bataille pour leurs compilateur, est ce le cas pour VC++?
Il y a un vieux (2001) roundup sur le site du C/C++ Users Journal qui comparait compilos et biliothèques. Il reste valable pour les vieux compilos d'époque.
Sinon, les tests de régression sur le site de boost donnent une idée de la conformance des divers compilateurs relativement aux options avancées du C++ qui sont utilisées dans boost. Attention, c'est tout sauf un critère absolu! Il s'agit d'une mesure relative à boost seulement.
Deux autres mesures orientées performances qui en interresseront certains. Cette news vient de passer sur la mailing-list de Cygwin.
En fait, le forum news://news.gmane.org/gmane.comp.lang.c++.perfometer semble dédié aux mesures de performances.Citation:
========================================
Comparative Performance of C++ Compilers
C/C++ Performance Tests
=========================================
Environment
-----------
Windows 2000 Professional
Intel(R) Celeron(R) CPU 1.70 GHz
Compilers
---------
* GNU g++ 3.3.1 (cygming special), Cygwin
* GNU g++ 3.3.1 (cygming special), Mingw32 Interface
* GNU gpp 3.3.2 (djgpp)
* Microsoft C++ 13.00.9466 (Unmanaged)
* Microsoft C++ 13.00.9466 (Managed)
* Borland C++ 5.5.1
* Digital Mars C++ 8.40.2
* Intel C++ 8.0
Testsuites
----------
* Computing very large Fibonacci numbers
http://article.gmane.org/gmane.comp.....perfometer/37
* Copying files (input to output)
http://article.gmane.org/gmane.comp.....perfometer/38
Parlons un peu du compilo BCB6 : afin de permettre un portage complet de leur lib pascal, ils ont rajoutés des fonctionnalités et des mots clés étrangés au C++ ANSI : get, set, published, etc...Citation:
Envoyé par Medo_free
bien sur, ce n'est pas possible de compilé du code VCL ou CLX avec un autre compilo...
A part ça, peu de différence avec VC7, sauf:
- quelques différences au niveau de l'implémentation de la STL (cf ios:nocreate) mais facilement contournables.
- Problème avec les templates (bcp plus génant mais ça pose problème avec presque tous les compilos)
Si vous passez d'un compilo à l'autre un même bout de code,
RESTESTER vos fonctions MEME si ça compile du PREMIER COUP (re-cf ios::nocreate)
Je percute longtemps après (j'ai cliqué un lien trop haut pour les nouveautés :roll:)
Il n'y a pas de std::ios_base::nocreate dans la SL du C++98. Il est normal qu'il y ait des incompatibilités entre les divers compilos quand on continue de se servir de ::ios::nocreate qui prédate la norme.
Je dirais que Vc++ et BCB n'ont pas la même optique.
VC++ permet notamment de redéfinir le look (Active X, Skin) complet d'une application, composant par composant. Il est possible de redéfinir en profondeur les comportements et les looks. Le développeur fournira un effort non négligeable dans la partie graphique et traitements standards de son application avant de se concentrer sur la partie métier.
BCB est un RAD, il permet de faire rapidement une application pour Windows (ou Unix pour ceux que ça intéresse) avec un look standard des composants. Le développeur se concentre alors plus sur la partie métier de l'application.
pour avoir utilisé les 2 pendants 4mois chaqun je travaillier d'appaort sous borland et fut obligé de passé sur vc je trouve que vc est beaucoup plus vide que borlande
borlande ma offert beaucoup plus de choix et rien que le fait de lancfé les 2 l'un a coté de l'autre on voit quand meme que vc est beaucoup moins fournir et fait vide
Quelles versions ? Pourquoi faire ?
VC++ est-il vraiment très dur de s'en servir?
Pour ma part, j'ai commensé le C++ avec BorlandC++5 et la bibliothèque OWL. Très très bien au point que j'ai développé un très gros projet (héritages multiples, DLLs, gestion du chargement et déchargement des segments de mémoires, mélange de code C/C++, etc).:mouarf:
OWL a été abandonné l'air de rien petit à petit sans annonce claire de la part de Borland, là j'ai été très embêté.:aie:
wxWindows semble être le framework le plus proche d'OWL. Me disant qu'avec C++BuilderX, je serai armé jusqu'au dent pour faire du multi-plateforme.
Et bien je n'ai jamais réussi à commenser à utiliser le framework wxWidgets ni sous C++BuilderX ni sous C++Builder6.:oops: Le wizard wxFramework de C++BuilderX ne fonctionne pas.
Le principal problème que j'ai rencontré est qu'il n'y a pas beaucoup de support Borland/wxWidgets.
Je suis donc passé à VisualStudio6 et suis obligé de reprendre toutes les lignes de code.:cry:
Maintenant, je dois redécouvrir le fil à couper le beurre chez Microsoft.
A l'heure actuelle, je ne suis toujours pas sorti de cette migration et suis très ennervé des annonces floues de Borland. On ne sais toujours pas ce qu'il deviendra des outils de développement de DevCo. Je n'ai jamais réussi à trouver quelqu'un d'honnête chez Borland pouvant me dire ce qui marche bien ou ce qui est peu conseillé dans chaque RAD de Borland. Bref, je suis passé à VisualStudio car j'en ai eu marre d'avoir à m'adresser à des marchands de tapis chez BorlandFrance.
Au final, je crois que choisir entre BorlandC++Builder ou MicrosoftVisualStudio est comme se marier (pour le meilleure et pour le pire) et comme jouer aux dés (difficile de connaître les évolutions futures des outils et des nécessités des migrations).
Voilà voilà, c'est pas très constructif mais c'est mon expérience.:roll:
salut,
j'ai fait un prog qui permet de lire les 16 bits du compteur RTC 8254 de l'ordinateur. Mais, mon probleme c'est de convertir le meme programme en visual c++ pour une autre utilisation. si vous pouvez m'aider, je serai très reconnaissant et merci.
ici le prog me return le nombre d'impulsion pour excuter l'instruction printf...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include <dos.h> #include <string.h> #include <conio.h> unsigned long hrtime(void) // FONCTION DE LECTURE DU PORT { asm{ pushf cli mov al,0x00 out 0x43,al in al,0x40 xchg ah,al in al,0x40 xchg ah,al popf } } int main(int argc, char* argv[]) {//INITIALISATIONDU COUNTER unsigned long elapsedTime ; asm{ pushf cli mov al,0x34 out 0x43,al xor al,al out 0x40,al out 0x40,al popf } int cnt = 0; while(cnt < 10) { elapsedTime = 65536 - hrtime(); printf("%u",elapsedTime); printf("\n"); cnt++; } getch(); return 0; }
:tagcode:
salut,
j'ai lu dans votre msg que vous avez une experience sur l'acquisition des données. Dans le meme objectif, dans un projet d'acquisition des données j'ai voulu utiliser l'horloge de ma carte d'acquisition: cad je voudrais lire les bits du compteur 8254.
Pour ce faire, j'ai commencé d'abord par la lecture du 16 bits de l'horloge RTC de mon ordinateur. c 'estva marcher je vais excuter le meme prog sur ma carte en changeant l'adresse memoire du circuit.
j' ai etabli unprog en borland qui permet de compter le nbre d'impulsions pour excuter l'instruction printf, ca marche. Mais mon probleme c'est comment le convertir en visual c++ car la documentation de la carte ne me donne que des fonctions en visual c++ pour configurer la carte...
Mon probleme c'est de convertir le meme programme en visual c ++. Si vous pouvez m'aider, je serai très reconnaissant et merci.
:tagcode:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <stdio.h> #include <dos.h> #include <string.h> #include <conio.h> unsigned long hrtime(void) // FONCTION DE LECTURE DU PORT { asm { pushf cli mov al,0x00 out 0x43,al in al,0x40 xchg ah,al in al,0x40 xchg ah,al popf } } int main(int argc, char* argv[]) { //INITIALISATIONDU COUNTER unsigned long elapsedTime ; asm { pushf cli mov al,0x34 out 0x43,al xor al,al out 0x40,al out 0x40,al popf } int cnt = 0; for(int cnt = 0;cnt <10; cnt++) { elapsedTime = 65536 - hrtime(); printf("%u\n",elapsedTime); getch(); } return 0; }
salut ,Citation:
Envoyé par carreau
j'ai eu a peu pres la même histoire j'ai commencé les devellopements graphiques avec borland en c++ en 94, au fil des deconvenus (abandon progressif de owl etc) ,j'en ai eu marre et je suis passé chez MS .
comme tu le dis c'est une histoire de mariage .
ma societe ne pouvait se permettre d'investir sur du flou .
j'ai effectivement du réécrire beaucoup de choses ,m'inspirer des bonnes idées de owl .
au final je ne suis pas mecontent de mon choix, le probleme de portabilité vers d'autres OS n'a jamais ete un probleme pour moi, je ne travaille plus que sous windows.
les MFC me laisse une totale liberté sur ce je que j'ecris, de plus avec les ouverture au C++/cli à .net avec les MFC, pour moi la question ne se pose plus ...
#include <dos.h>
#include <string.h>
#include <conio.h>
unsigned long hrtime(void) // FONCTION DE LECTURE DU PORT
{
asm(
".intel_syntax noprefix\n"
"pushf\n"
"cli\n"
"mov al,0x00\n"
"out 0x43,al\n"
"in al,0x40\n"
"xchg ah,al\n"
"in al,0x40\n"
"xchg ah,al\n"
"popf\n"
".att_syntax noprefix\n"
);
}
int main(int argc, char* argv[])
{//INITIALISATIONDU COUNTER
unsigned long elapsedTime ;
asm(
".intel_syntax noprefix\n"
"pushf\n"
"cli\n"
"mov al,0x34\n"
"out 0x43,al\n"
"xor al,al\n"
"out 0x40,al\n"
"out 0x40,al\n"
"popf\n"
".att_syntax noprefix\n"
);
int cnt = 0;
while(cnt < 10)
{
elapsedTime = 65536 - hrtime();
printf("%u",elapsedTime);
printf("\n");
cnt++;
}
getch();
return 0;
}
tout à fait vrai vu tout le spectacle qu'il faut faire pour avoir un bon formulaire en VC++, je préfere créer une IDE en Ctraditionnel:aie:Citation:
Envoyé par rico27fr
pour mettre en place une interface utilisateur, borland est bien meilleure mais en ce qui concerne le reste le noyau du programme en c++,c'est une autre histoire.... dès que l'on se met à piloter des objets COM, des dll, etc... il faut comprendre la vcl.... et sur des gros projets, il faut avoir du temps .. heureusement que le IDE compiler speed non officiel en fait gagner ... d'ailleurs je ne comprend tjrs pas pquoi borland ne l'integre pas....
tout cette perte de temps, et cette incompréhension a pour conséquence le passage sous MS
------------------------------------------------------------------------Citation:
Envoyé par ZeDuckMaster
certes la documentation sur visual C++ abonde, mais c'est le visual lui même qui cloche, car il ne comporte pas une logique que l'on comprend et que l'on suit pour programmer comme c'est le cas pour delphi ou visual basic, pour chaque truc il faut que l'on lisent l'astuce à appliquer, et je me demande ou l'ecrivain de l'astuce l'a trouvée, je crois que le visual c++ est une tentative des programmeurs c++ a s'adapter à l'univers windows, mais malgré la pub qu'on lui fait, pour moi ca vaut pas le visual basic ou le delphi, c'est un langage de bas niveau (composent machines) certes, mais pas evolué.
Bonjour,
je viens de lire un article expliquant que Borland allait laisser tomber ses IDE (Builder, Delphi...).
Pour ma société, je dois faire un choix entre C++Builder et VisualC++. Je suis bien familiarisé avec Builder (pas pro, mais j'en ai pris l'habitude et je l'aime beaucoup). De plus, étant étudiant, j'ai pu avoir avec Microsoft, des licences de Visual 2005. Je me trompe peut-être, mais pour faire tourner une appli qu'on développe avec Visual, il faut avoir le framework installé? Si je développe un outil pour ma boîte, tout le monde devra installer le framework sur son PC? Avec borland, seulement 2 DLL et 3 BPL son suffisants (au total, 2Mo). La distribution de l'appli se fait plus simplement avec Borland, alors qu'on pourrait penser que comme c'est Microsoft, ce qu'il faut pour une appli Visual sera intégré à Windows, mais non.
Ca me fait peur d'avoir à choisir Visual uniquement pour ne pas me retrouver coincé d'ici quelques années, un peu comme vous avec OWL.
Qu'en pensez vous de cette anonce?
Benz
Je ne pense pas qu'avec Visual Studio 2005 il faille installer le framework si l'on compile le C++ en natif. Je suis passé récemment de VC 6.0 à Visual Studio 2005 pour mes programmes natifs il y a peu de temps, et il n'utilise pas le framework.